Similar presentations:
Лекции 1-2 Введение в архитектуру вычислительных систем
1.
Федеральное государственное образовательное учреждениевысшего образования
«Оренбургский государственный университет»
Курс:
«Архитектура вычислительных систем»
Лекции 1-2
«Введение в
архитектуру
вычислительных
систем»
2. Введение в предмет
ЦЕЛЬ развития вычислительных систем –повышение эффективности обработки данных:
скорость + объем + надежность + цена + удобство
На
протяжении
всей
истории
человечества
эволюция
вычислительных систем (от совсем простых к суперпроизводительным) обусловлена потребностями решения все
более и более сложных счетных задач
Достижение определенного уровня возможностей вычислительных
систем выводит на более высокий уровень возможности человека
в области науки и технологий. Это, в свою очередь, приводит к
необходимости решения более сложных вычислительных задач,
т.е. к необходимости совершенствования производительности
вычислительных систем и т.д.
Таким образом – развитие вычислительных систем идет рука об
руку с развитием промышленности, технологий, науки и других
отраслей деятельности человека
3. Введение в архитектуру вычислительных систем / Понятие архитектуры вычислительных систем
• Электронная вычислительная машина (ЭВМ)или компьютер – вычислительная машина, у
которой основные функциональные устройства
выполнены на базе электронных компонентов
• Вычислительная система – одна или несколько
вычислительных
машин,
периферийное
оборудование и программное обеспечение, с
помощью которых выполняется обработка
информации (ISO/IEC 2382/1-93)
4. Введение в архитектуру вычислительных систем / Понятие архитектуры вычислительных систем (продолжение)
• Для вычислительной машины характерна определённаяорганизация:
• внутренняя упорядоченность, согласованность и
взаимодействие частей целого
• наличие совокупности процессов и действий, которые
приводят к образованию и совершенствованию
взаимосвязей между частями целого
• В вычислительной технике существуют два вида
организации вычислительных машин (систем), которые
определяются двумя взглядами (пользователя и
разработчика) на их построение и функционирование
5. Введение в архитектуру вычислительных систем / Понятие архитектуры вычислительных систем (продолжение)
• Для пользователя важен набор функций вычислительноймашины, которые обеспечивают эффективное решение его
задач
• Функциональная организация вычислительной машины –
абстрактная модель совокупности её функциональных
возможностей,
направленных
на
удовлетворение
потребностей пользователей
• Разработчик должен выполнить техническую реализацию
функций на основе реальных физических объектов
• Структурная организация вычислительной машины –
физическая модель, которая устанавливает состав, порядок
и принципы взаимодействия основных функциональных
частей машины
6. Введение в архитектуру вычислительных систем / Понятие архитектуры вычислительных систем (окончание)
• Графическим отображением и функциональной, и структурнойорганизации вычислительной машины является структурная схема
• Функциональная организация вычислительной машины =
Архитектура вычислительной машины
• Архитектура вычислительной машины – её концептуальная
структура, которая определяет выполнение обработки информации,
а также содержит методы преобразования информации и принципы
взаимодействия аппаратного и программного обеспечения (ГОСТ
15971-90)
• Архитектура вычислительной машины – её логическая структура и
функциональные характеристики, включая взаимосвязи между
аппаратными и программными компонентами машины (ISO/IEC
2382/1-93)
• Функциональная организация вычислительной машины (системы) =
Архитектура компьютера (компьютерной системы)
7.
История развития вычислительной техники1/3
В истории вычислительной техники можно выделить три не равные по
длительности этапа.
Первый этап – от глубокой древности до появления
первых электронных вычислительных машин. В это
время создавались различные устройства и методы,
облегчавшие счет, вычисления.
Началом второго этапа явилось создание в середине XX
в. первой цифровой вычислительной машины,
работавшей на основе тех же принципов, что и
современные компьютеры. Вычислительная техника на
этом этапе еще не стала массовой.
Третий этап, начавшийся в 1980-х годах с создания
персонального компьютера, продолжается в настоящее
время. Вычислительная техника получила массовое
распространение. Так же, как в прошлом цивилизованный
человек был обязан уметь читать и писать, современный
человек обязан владеть навыками использования
вычислительной техники.
Вопросы
8.
История развития вычислительной техникиВопросы
2/3
9.
Поколения ЭВМ1/7
Доэлектронный период
Первое поколение ЭВМ
(1948 - 1958 гг.)
Второе поколение ЭВМ
(1959 - 1967 гг.)
Третье поколение ЭВМ
(1968 - 1973 гг.)
Четвертое поколение ЭВМ
(1974 - 1982 гг.)
Вопросы
Пятое поколение ЭВМ
10. Этапы развития (1)
РУЧНОЙ ЭТАП –пальцы, счеты, абак (у греков),
узелковый счет (у индейцев) и т.п.
МЕХАНИЧЕСКИЙ ЭТАП –
• Леонардо да Винчи (~1500г) – эскиз сумматора
• Шиккард (1623) – первое действующее устройство
сложения – «механические часы», 1 экз.
• Паскаль (1641) – суммирующая машина, 50 экз.
• Лейбниц (1671) – арифмометр, 4 действия
• Начало 19 века – элементы автоматизации (ткацкий станок Жаккарда,
управление перфокартами, перфолентами) и попытки их применения
для вычислительных устройств.
• Бэбидж (1822) – описание «разностной машины» для вычисления мат.
функций, используемых в навигации (полиномы 4й степени, 15 знаков)
• Проект «аналитической» машины Бэбиджа – прообраз современной
ЭВМ: память (склад), ввод с перфокарт, вывод на печать, счетное
устройство (мельница)
• Ада Лавлейс (1843) – основы программирования, первая в мире
программа для «аналитической машины»
Базовые элементы – механические (валики, зубчатые колеса и т.п.)
Человек участвует в процессе счета на всех этапах
11. Этапы развития (2)
ЭЛЕКТРОМЕХАНИЧЕСКИЙ этап –Табулятор – устройство простейшей обработки
данных, введенных с перфокарт (1887, Холлерит).
Главный элемент – электромеханическое реле
Табуляторы определили развитие на 50-60 лет, широко использовались
в США, России, Канаде.
30е годы – программно-управляемые вычислительные машины на этой
основе
ЭЛЕКТРОННЫЙ этап –
40е годы – начала меняться элементная база, стали использовать
электронное реле (триггер), изобретенное еще в начале 20го века.
Сформулированы принципы фон-Неймана (1944)
Первая действующая машина фон-Неймановского типа (1949) – EDSAC
(Electronic Delay Storage Automatic Calculator) – автоматический
вычислитель с электронной памятью, 100 арифметических операций в
секунду.
С этой машины принято отсчитывать первое поколение компьютеров –
электронно-вычислительных машин, ЭВМ. Развитие шло в рамках
фон-неймановской архитектуры, наращивались количественные
характеристики.
Уже на этом этапе использовался параллелизм.
12. Принципы фон Неймана
Электронная элементная базаОрганизация памяти в виде однородного
линейного адресного пространства
Параллельная организация обработки разрядов
Параллельная передача разрядов по внутренним каналам
Принцип адресности.
Структурно основная память состоит из пронумерованных ячеек, причем
процессору в произвольный момент доступна любая ячейка. Для доступа к
используются номера соответствующих ячеек — адреса.
Принцип программного управления.
Все вычисления, предусмотренные алгоритмом решения задачи, должны
быть представлены в виде программы, состоящей из последовательности
управляющих слов — команд. Каждая команда предписывает некоторую
операцию из набора операций, реализуемых вычислительной машиной.
Принцип двоичного кодирования.
Вся информация, как данные, так и команды, кодируются двоичными
цифрами 0 и 1. Каждый тип информации представляется двоичной
последовательностью и имеет свой формат.
ЭТИ ПРИНЦИПЫ ХАРАКТЕРНЫ ДЛЯ ВСЕХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
13. Архитектура фон Неймана
Главные составляющие архитектуры фон-Неймана:- Арифметико-логическое устройство (АЛУ) выполняет самые важные
операции: умножение, сложение, вычитание и др.
- Устройство ввода/вывода
(ВВ), управляет потоком внешних,
относительно машины, данных.
- Память
- Устройство управления (УУ), через которое идет обмен данными между
ВВ, памятью и АЛУ.
- Аккумулятор АЛУ – внутренний регистр для загрузки данных из памяти
По факту – практически все вычислительные системы в том или ином виде
имеют в своем составе эти элементы.
Принцип однородности памяти – еще
один принцип архитектуры фон-Неймана
• Машины фон-Неймана хранят
программу и данные в одной и той же
области памяти.
• Распознать их можно только по
способу использования.
• Команды программы содержат
указание, что выполнить, и адрес
данных, подлежащих обработке.
14. Гарвардская архитектура
Основные принципы разработаны в конце 30хв США Говардом Эйкеном в рамках проекта
ЭВМ для военно-морской артиллерии.
Гарвардская машина, как и фон-неймановская, имеет
АЛУ, память и устройство ВВ.
Принципы двоичного кодирования, программного
управления и адресного доступа к памяти – те же, что у фон Неймана.
ОТЛИЧИЕ: Память программ и память данных физически разделены и
используют разделенные линии передачи.
Это позволяет подобной машине пересылать команды и данные
одновременно, значительно увеличивая производительность.
В этом состоит преимущество данной системы по сравнению с фонНеймановской, в которой из-за того, что память программ и память
данных не могут быть доступны в одно и то же время, пропускная
способность является значительно меньшей, чем скорость, с которой
процессор может работать.
Расплатой за высокую скорость является бόльшая сложность и
соответственно более высокая цена процессора.
Первый компьютер на этой основе – MAPK 1 (1937-1944) вес 5т, 1я в мире
программно-управляемая машина.
Первый компьютер в СССР – ВЦ-1 МО (1958) – тоже на базе гарвардской
архитектура
15. Уровни архитектуры компьютера
Уровень физических устройств – элементная база.Цифровой логический уровень. Вентили (логические
схемы) – простейшие цифровые устройства для
логических операций, регистров памяти и др.
Уровень микроархитектуры. Наборы вентилей,
формирующие локальную память, АЛУ и др.
Уровень машинных инструкций. Аппаратная реализация
(непосредственное выполнение или микропрограммная реализация)
Уровень операционной системы (ОС). Изначально назначением ОС
была интерпретация команд оператора в набор машинных инструкций
(отсюда и название). В дальнейшем функции ОС существенно
расширились и усложнились. В современном понимании ОС – комплекс
взаимосвязанных программ для управления ресурсами компьютера и
организации взаимодействия с пользователем (управление
аппаратными средствами, работа с файлами, выполнение прикладных
программ, ввод\вывод данных и др.). ОС — первый и основной набор
программ, загружающийся в компьютер.
Уровень ассемблера
Уровень прикладных программ (язык высокого и сверхвысокого уровня)
16. Поколения ЭВМ (элементная база)
Первое поколение – электронные лампы (1945-1955)Второе поколение – транзисторы (1955-1965)
Третье поколение – интегральные схемы (1965-1980)
Четвертое поколение – БИС (1980-сейчас) – широкий
спектр архитектур (от ПК до суперкомпьютеров и
ГРИД). В основе – все те же принципы фон Неймана,
только АЛУ и УУ размещаются на одном кристалле
микропроцессора.
Пятое поколение – что далее?
технологии искусственного интеллекта?
«невидимые» компьютеры и всепроникающая
компьютеризация – внедрение микро-компьютеров в
состав разных устройств во всех сферах
деятельности человека
квантовый компьютинг? Биотехнологии?
17. Архитектура ПК
Архитектура персонального компьютераАрхитектура ПК
Для связи между отдельными
функциональными узлами ПК
используется общая
информационная
магистраль – системная
шина, которая состоит из 3-х
частей:
-Шина данных (для передачи
данных);
-Шина адреса (для передачи
адресов устройств);
- Шина управления (для
передачи управляющих
сигналов, синхронизирующих
работу разных устройств).
Важное достоинство такой
архитектуры – возможность
подключения к компьютеру
новых устройств или замена
старых устройств на более
современные. Это
называется принципом
открытой архитектуры.
Для каждого типа и модели
устройств используется
свой контроллер, а в
составе ОС имеется
управляющая программа
(драйвер устройства)
18. Архитектура ПК
Архитектура персонального компьютераАрхитектура ПК
системная шина
(организация связи):
-Шина данных (для передачи
данных);
-Шина адреса (для передачи
адресов устройств);
- Шина управления (для
передачи управляющих
сигналов, синхронизирующих
работу разных устройств).
Важное достоинство такой
архитектуры – возможность
подключения к компьютеру
новых устройств или замена
старых устройств на более
современные. Это называется
принципом открытой
архитектуры.
Для каждого типа и модели устройств
используется свой контроллер, а в составе ОС
имеется управляющая программа (драйвер
устройства)
19. Тема: Многоуровневая компьютерная организация
20. Основные понятия
Вычислительная машина (ВМ) – комплекстехнических и программных средств для
автоматизации, подготовки и решения задач
пользователя.
Вычислительная система (ВС) – это
совокупность
взаимосвязанных
и
взаимодействующих процессоров или ВМ
периферийного
оборудования
и
ПО,
предназначенного для подготовки решения
задач пользователя.
Архитектура ЭВМ – логическое построение
ВМ, т.е. т.о. какой машина представляется
программисту.
21. Уровни детализации архитектуры компьютера:
1.Уровень «чёрного ящика» – это когда ЭВМ представляется как устройство, способное хранить
и обрабатывать информацию, а так же обмениваться данными со внешним миром.
2.
Уровень общей архитектуры. ЭВМ представляется в виде четырёх составляющих:
· центрального процессора
· основной памяти
· устройства ввода/вывода
· системной шины
3.
Уровень архитектуры ЦП. Детализируется каждое из устройств второго уровня.
· Арифметико-логическое устройство
· Блок обработки чисел в формате с плавающей запятой
· Регистры процессора, используются для краткосрочного хранения команд, данных и
адресов
· Устройство управления, обеспечивающее совместное функционирование
· шины
4.
Уровень архитектуры устройства управления. Детализируются элементы третьего уровня.
Например, УУ:
· логика программной последовательности
· регистры и дешифраторы
· логика формирования управления
22. Выделяют 6 уровней иерархии
5Язык высокого уровня
4
Уровень ассемблера
3
Уровень операционной системы
2
Уровень архитектуры набора команд
1
Микроархитектурный уровень
0
Цифровой логический уровень
23. Цифровой логический уровень
На самом нижнем уровне, на цифровом логическомуровне, объекты называются вентилями. Хотя вентили
состоят из аналоговых компонентов, таких как транзисторы,
они могут быть точно смоделированы как цифровые
устройства. У каждого вентиля есть один или несколько
цифровых входов (сигналов, представляющих 0 или 1).
Вентиль вычисляет простые функции этих сигналов, такие
как И или ИЛИ. Каждый вентиль формируется из
нескольких транзисторов. Несколько вентилей формируют 1
бит памяти, который может содержать 0 или 1. Биты памяти,
объединенные в группы, например, по 16, 32 или 64,
формируют регистры. Каждый регистр может содержать
одно двоичное число до определенного предела. Из
вентилей также может состоять сам компьютер.
24. Микроархитектурный уровень
На этом уровне находятся совокупности 8 или 32 регистров,которые формируют локальную память и схему, называемую АЛУ
(арифметико-логическое устройство). АЛУ выполняет простые
арифметические операции. Регистры вместе с АЛУ формируют тракт
данных, по которому поступают данные. Тракт данных работает
следующим образом. Выбирается один или два регистра, АЛУ
производит над ними какую-либо операцию, например сложения, после
чего результат вновь помещается в один из этих регистров. На некоторых
машинах работа тракта данных контролируется особой программой,
которая называется микропрограммой. На других машинах тракт данных
контролируется аппаратными средствами. На машинах, где тракт данных
контролируется программным обеспечением, микропрограмма — это
интерпретатор для команд на уровне 2. Микропрограмма вызывает
команды из памяти и выполняет их одну за другой, используя при этом
тракт данных. Например, при выполнении команды ADD она вызывается
из памяти, ее операнды помещаются в регистры, АЛУ вычисляет сумму,
а затем результат переправляется обратно. На компьютере с аппаратным
контролем тракта данных происходит такая же процедура, но при этом
нет программы, интерпретирующей команды уровня 2.
25. Уровень архитектуры набора команд
Каждыйпроизводитель
публикует
руководство для компьютеров, которые он
продает, под названием «Руководство по
машинному языку X», «Принципы работы
компьютера У» и т. п. Подобное руководство
содержит информацию именно об этом уровне.
Описываемый в нем набор машинных команд в
действительности
выполняется
микропрограммой - интерпретатором или
аппаратным обеспечением. Если производитель
поставляет два интерпретатора для одной
машины, он должен издать два руководства по
машинному языку, отдельно для каждого
интерпретатора.
26. Уровень операционной системы
Этот уровень обычно является гибридным. Большинствокоманд в его языке есть также и на уровне архитектуры набора
команд (команды, имеющиеся на одном из уровней, вполне могут
быть представлены и на других уровнях). У этого уровня есть
некоторые дополнительные особенности: новый набор команд,
другая организация памяти, способность выполнять две и более
программы одновременно и некоторые другие. При построении
уровня 3 возможно больше вариантов, чем при построении
уровней 1 и 2. Новые средства, появившиеся на уровне 3,
выполняются интерпретатором, который работает на втором
уровне. Этот интерпретатор был когда-то назван операционной
системой. Команды уровня 3, идентичные командам уровня 2,
выполняются микропрограммой или аппаратным обеспечением,
но не операционной системой. Другими словами, одна часть
команд уровня 3 интерпретируется операционной системой, а
другая часть — микропрограммой. Вот почему этот уровень
считается гибридным.
27. Уровень ассемблера
Уровни с четвертого и выше предназначены дляприкладных программистов, решающих конкретные
задачи, уровни 0, 1, 3 изначально ориентированы на
интерпретаторы и трансляторы, поддерживающие
более высокие уровни.
Уровень 4 представляет собой символическую
форму одного из языков более низкого уровня. На
этом уровне можно писать программы в приемлемой
для человека форме. Эти программы сначала
транслируются на язык уровня 1, 2 или 3, а затем
интерпретируются соответствующей виртуальной
или
фактически
существующей
машиной.
Программа,
которая
выполняет
трансляцию,
называется ассемблером.
28. Уровень язык высокого уровня
Уровень 5 обычно состоит из языков, разработанныхдля прикладных программистов. Такие языки называются
языками высокого уровня. Существуют сотни языков
высокого уровня. Наиболее известные среди них — С,
C++, Java, LISP и Prolog. Программы, написанные на этих
языках, обычно транслируются на уровень 3 или 4.
Трансляторы, которые обрабатывают эти программы,
называются компиляторами. Отметим, что иногда также
имеет место интерпретация.
В некоторых случаях уровень 5 состоит из
интерпретатора для конкретной прикладной области,
например символической логики. Он предусматривает
данные и операции для решения задач в этой области,
выраженные при помощи специальной терминологии.
29.
Языки, уровни и виртуальные машины• Термины «уровень» и «виртуальная машина» –
синонимы.
• Термин «виртуальная машина» также имеет и другие
значения.
• Большинству программистов, использующих машину
уровня n, интересен только самый верхний уровень,
который меньше всего сходен с машинным языком.
Чтобы понять, как работает компьютер, необходимо
изучить все уровни.
30. Заключение
Такимобразом,
компьютер
проектируется
как
иерархическая
структура
уровней,
которые
надстраиваются друг над другом. Каждый
уровень представляет собой определенную
абстракцию
различных
объектов
и
операций.
Рассматривая
компьютер
подобным образом, мы можем не
принимать во внимание ненужные нам
детали и, таким образом, сделать сложный
предмет более простым для понимания.
31. Виртуальные машины и трансляторы
32.
33.
Процессныевиртуальные машины
Системные
виртуальные машины
34.
Среды языкавысокого
уровня
35. Трансляторы
Транслятор – программа или техническое средство,выполняющее трансляцию программы.
Трансляция программы – преобразование
программы, представленной на одном из языков
программирования, в файл определенного
формата.
Программа на
языке
программирования
вход
Транслятор
выход
Машинные коды
36. Виды трансляторов
Диалоговый транслятор.Синтаксически-ориентированный (синтаксически-управляемый)
транслятор.
Однопроходной транслятор.
Многопроходной транслятор.
Оптимизирующий транслятор.
Тестовый транслятор.
Декомпилятор.
37. Виды трансляции
КонвертацияДинамическая
компиляция
Интерпретация
Компиляторы
Виды трансляции
38. Компиляция
Компилятор – транслятор, преобразующий исходный код с какого-либоязыка программирования на машинный язык.
Компиляция – трансляция программы, составленной на исходном языке
высокого уровня, в эквивалентную программу на низкоуровневом языке,
близком машинному коду (абсолютный код, объектный модуль, иногда
на язык ассемблера).
Исходный код
программы на
языке высокого
уровня
вход
Компилято
р
выход
Выполненны
е инструкции
Программа на
низкоуровнево
м языке
Выполнени
е
инструкций
39. Виды компиляции
Пакетная.Построчная.
Условная.
Этапы процесса компиляции
Лексический анализ.
Синтаксический (грамматический) анализ.
Семантический анализ.
Оптимизация.
Генерация кода.
40. Достоинства компиляции
компиляция программы выполняется один раз;наличие компилятора на устройстве, для которого
компилируется программа, не требуется.
Недостатки компиляции
компиляция – медленный процесс;
при внесении изменений в исходный код, требуется повторная
компиляция;
при переносе программы на другую платформу требуется
перекомпиляция исходного кода.
41. Интерпретация
Интерпретация – процесс чтения и выполненияисходного кода. Реализуется программой –
интерпретатором.
Два вида интерпретаторов
Простой интерпретатор
Интерпретатор компилирующего вида
Исходный код
программы на языке
высокого уровня
вхо
д
Интерпретато
р
выход
Выполненные
инструкции
42.
Этапы работы интерпретатораЛексический анализ
Синтаксический анализ
Семантический анализ
В случае простой
интерпретации
Создание
промежуточного
представления кода
Исполнение
43. Достоинства интерпретации
большая переносимость интерпретируемых программ – программа будетработать на любой платформе, на которой есть соответствующий интерпретатор;
более совершенные и наглядные средства диагностики ошибок в исходных кодах;
отсутствие необходимости перекомпиляции исходного кода после внесения
изменений и при переносе кода на другую платформу;
меньшие размеры кода по сравнению с машинным кодом, полученным после
обычных компиляторов.
Недостатки интерпретации
интерпретируемая программа не может выполняться отдельно без программыинтерпретатора. Сам интерпретатор при этом может быть очень компактным;
интерпретируемая программа выполняется медленнее, поскольку
промежуточный анализ исходного кода и планирование его выполнения требуют
дополнительного времени по сравнению с непосредственным исполнением
машинного кода, в который мог бы быть скомпилирован исходный код;
практически отсутствует оптимизация кода, что приводит к дополнительным
потерям в скорости работы интерпретируемых программ.
44. Компиляция против интерпретации без ввода
45. Компиляция против интерпретации с вводом
46. Динамическая или JIT компиляция
Динамическая или JIT (Just In Time) компиляция –трансляция, при которой исходный или промежуточный
код преобразуется (компилируется) в машинный код
непосредственно во время исполнения.
Исходный код
программы на языке
высокого уровня
вхо
д
Исполнение
Компилятор
Машинный
код
выход
Байткод
JIT компилятор
47. Достоинства JIT компиляция
скорость работы динамически компилируемых программ близкак скорости работы компилируемых программ;
отсутствие необходимости перекомпиляции программы при
пере-носе на другую платформу.
Недостатки JIT компиляция
большая сложность реализации;
большие требования к ресурсам.
48. Компиляция + интерпретация + JIT
49. Конвертация
Конвертор – переводит программу с одного языкана другой.
Pascal
C++
Var
#include <iostream>
Using namespace std;
int a;
int main() {
cin >> a;
if (a > 5)
for (int i=5; i<=10)
cout << I << endl;
else
cout << “It’s time for magic!” << endl;
return 0;
}
a,i:integer;
Begin
a = ReadLn();
if a>5
for I := 5 to 10 do
WriteLn(i);
else
WriteLn(“It’s time for magic!”);
END.
Конвертор
Пуф! Магия!
50. Достоинства конвертации
быстрый перевод больших блоков программы из одного языка в другой;небольшие требования к ресурсам.
Недостатки конвертации
отсутствие определенных конструкций в языке, в который переводится
программа, в следствии чего возможны ошибки;
перевод производится в основном в простые конструкции без
использования особенностей языка, поскольку есть вероятность, что в
переводимом языке нет аналога.
51. Java Virtual Machine
JRE (Java Runtime Environment) – минимальная реализация виртуальноймашины, необходимая для исполнения Java-приложений, без компилятора
и других средств разработки.
JVM (Java Virtual Machine) – виртуальная машина Java – основная часть
исполняющей системы Java.
52. Архитектура JVM
Java .class - файлыЗагрузчик классов
Верификатор
Интерпретатор
Java байт-кода
Компьютерная система
53. ТИПЫ СОВРЕМЕННЫХ КОМПЬЮТЕРОВ
Одноразовые (безбатарейные) микросхемы – проигрывание мелодийна поздравительных открытках, маркирование товаров и т.п.
Встроенные компьютеры – выполняют функции управления
устройствами и организации пользовательских интерфейсов (часы,
машины, бытовая техника и т.п.)
Мобильные и игровые компьютеры, смартфоны.
Персональные компьютеры и ноутбуки
Сетевые серверы
высокопроизводительные
Кластеры
системы
Мэйнфреймы, суперкомпьютеры
Распределенные вычислительные системы (ГРИД, облака и т.п.)
54. Зачем и где нужны мощные ЭВМ
Автомобилестроение (а также самолеты и космические аппараты и т.п.)
Нефте- и газодобыча
Фармакология, биология, биофизика, биохимия
Сейсморазведка, метеорология, климатология
Синтез новых материалов, химия, нанотехнологии
Обработка эксп. данных в ядерной физике и физике частиц
Климатология. Современные модели описываются системами
трехмерных нелинейных уравнений в частных производных, решения
которой должны воспроизводить все важные характеристики ансамбля
состояний реальной климатической системы. Нет возможности
поставить реальный эксперимент, т.е. высокие требования к точности.
(1) Краш-тесты компании Ford: 4–60 млн.долл., 10–150 образцов новых
моделей. Компьютерное моделирование сократило расходы на треть.
(2) Благодаря компьютерному моделированию (Cray) были найдены
слабые точки кузова Nissan Maxima и наиболее эффективные способы
их удаления. Корпус в результате удалось сделать на 10% прочнее.
(3) Компания Дюпон: искали замену хлорофлюорокарбону. За неделю
провели расчеты (5тыс.долл.), нашли материал с теми же свойствами,
но нейтральный к озону (сэкономили 3 месяца и 50 тыс. долларов).
55. Еще примеры
• Моделирование взрывов атомной бомбыпосле запрета реальных испытаний
• Расчет аэродинмаики болидов «Формулы 1»
• BMW – суперкомпьютер 12 Тфлопс для моделирования
работы аэродинамической трубы для виртуальных испытаний
• Audi – суперкомпьютер 39 Тфлопс для моделирования
столкновений с препятствиями.
• Pratt&Whitney – 3D-модель авиадвигателя, 350 Тфлопс.
Подтверждена безопасность самолета SuperJett-100 при
аварийной посадке без выпущенных шасси.
• Экзафлопный проект (США) – модель «всего самолета»,
«всей АЭС» и т.п.
Экзафлопс – 1018 операций с плавающей точкой в сек.
Петафлопс – 1015
Терафлопс – 1012
Итак, необходимость мощных вычислений очевидна, поэтому
развитие идет быстрыми темпами, несмотря на огромные
финансовые затраты.
56. Суперкомпьютеры (1)
Главные аспекты:- Высокопроизводительные вычислительные системы
- Программные технологии параллельной обработки данных
- Параллельные алгоритмы
Что такое суперкомпьютеры
Быстрое
развитие
компьютерной
индустрии
определяет
относительность понятия суперЭВМ: что 10 лет назад называли
суперкомпьютером, сегодня к ним не относятся. Производительность
ПК на базе Pentium-III/500MHz, сравнима с производительностью
суперЭВМ начала 70х, а сейчас ни те, ни другие не являются
суперкомпьютерами и выведены из эксплуатации.
Оксфордский толковый словарь по вычислительной технике (1986):
суперкомпьютер – очень мощная ЭВМ с производительностью
свыше 10 Mflops. Сегодня этот результат перекрывают ПК.
В начале 90х границу провели у отметки 300 Mflops. В 1996 планку
подняли до 5 Gflops. Так, компьютер занимавший в ноябре 2011 500е
место в Тop500, имеет производительность 96.4 Tflop\s, 1е место –
11280 Tflop\s.
Ироничное определение дал Кен Батчер (Ken Batcher):
суперкомпьютер – устройство, сводящее проблему вычислений к
проблеме ввода/вывода.
57. Суперкомпьютеры (2)
Основные признаки, характеризующие суперЭВМ- Высокое на текущий момент времени быстродействие;
- Самый современный технологический уровень;
- Специфические архитектурные решения, направленные на повышение
быстродействия
ЗАКОН
- Цена
МУРА
- Максимальный объем оперативной и дисковой памяти
Эмпирический закон Мура – количество транзисторов в одной микросхеме
удваивается каждые 18 мес растет быстродействие и объем памяти
• Ускорение идет (1) за счет увеличения тактовой частоты, (2) за счет
использования идей параллелизма в архитектуре ЭВМ.
• Действительно, за полвека производительность выросла более чем в
700млн раз, в то время как выигрыш в быстродействии за счет
уменьшения времени такта составил лишь 1000 раз. Остальное – за
счет использования новых решений в архитектуре компьютеров на
основе параллельной обработки данных и совмещения операций.
• В современных процессорах 200 и более микрокоманд могут
выполняться одновременно в каждом ядре многоядерного процессора.
Таким образом, два основных пути развития:
технологический
– развитие элементной базы
предел!
– использование новых решений в архитектуре компьютеров
58.
Наращивание производительностисовременных вычислительных систем происходит главным
образом за счет широкого применения параллелизма
Вычислительные ресурсы для параллельных вычислений:
одиночный компьютер с несколькими процессорами
(ядрами);
произвольное число компьютеров, соединенных
компьютерной сетью;
комбинация обоих вариантов.
Использование ускорителей (в том числе ГПУ)
Вычислительная задача должна:
разбиваться на дискретные части, которые могут вычисляться
независимо;
исполнять несколько инструкций в любой момент времени;
решаться за меньшее время при использовании нескольких
вычислительных ресурсов.
59. ДИНАМИКА РОСТА ТАКТОВЫХ ЧАСТОТ
ГодТактовая частота
Процессор
2004
3.46 GHz
Intel Pentium 4
2005
3.8 GHz
Intel Pentium 4
2006
2.333 GHz
Core Duo T2700
2007
3 GHz
Core2 Duo E6800
2008
3.33 GHz
Core2 Duo E8600
2009
3.06 GHz
Core i7 950
2010
3.6 GHz
Core i5
2011
3.9 Ghz
Core i7 Extreme
При этом закон Мура продолжает выполняться:
Производительность удваивается каждые 18 месяцев!
Правда, после 2015го наметилась некоторая тенденция к
«насыщению»
60.
TOP500 List – November 2017260-ядерные процессоры:
управляющее ядро + 4 64ядерных кластера для
SIMD-вычислений
Со-процессоры Intel Xeon Phi
для ускорения вычислений
GPU-процессоры NVIDIA для
ускорения вычислений
Russia: positions 63, 227, 412
61.
Современные высокопроизводительные системыОсобенности современных суперкомпьютерных систем:
Многоядерность
Гетерогенность
Сверхплотная компоновка
Внутрипроцессорнный параллелизм
Со-процессоры для ускорения вычислений
Современные высокопроизводительные системы:
Суперкомпьютеры
Метакомпьютинговые системы ( GRID, Cloud )
Широкое использование параллелизма
Объединение
огромного
числа
вычислительных
узлов
(процессоров, ядер, потоков, компьютеров) для одновременной
обработки данных
- мультипроцессинг
- мультикомпьютинг
Архитектурные решения для совмещения операций внутри
процессоров (конвейерность выполнения машинных команд,
суперскалярность, VLIW, hyperthreading)
62. Параллельная обработка данных (1)
Параллельная обработка данных обычно подразделяется на собственнопараллельную и конвейерную.
Параллельная обработка данных – объединение нескольких однотипных
независимых устройств, способных выполнять одну и ту же работу.
Одно устройство выполнит 100 операций за время Т, 5 устройств – за
время Т/5, т.е. в 5 раз быстрее.
Аналогии из жизни: один человек вскопает огород за 10 часов, а бригада
50 человек с такими же способностями, работая одновременно,
справятся с той же работой за 12 мин.
Контрпример: землекопы копают яму. Пока их немного, время работы
уменьшается пропорционально числу людей. НО(!) избыточность
людей замедляет процесс.
Конвейерная обработка данных – идея
заключается в выделении
отдельных этапов выполнения общей операции, причем каждый этап,
выполнив
свою
работу,
передает
результат
следующему,
одновременно принимая новую порцию входных данных для обработки
от предыдущего.
Выигрыш в скорости обработки получаем за счет совмещения прежде
разнесенных во времени операций. Пример – автомобильный конвейер.
Пусть в операции можно выделить 5 последовательных микроопераций,
каждая выполняется за 1сек. Одно неделимое последовательное
устройство 100 операций выполнит за 500 сек.
63. Параллельная обработка данных (2)
Если же каждую микрооперацию выделить в отдельный этап (ступень)конвейерного устройства, то на 5й сек на разной стадии обработки
такого устройства будут находиться первые 5 операций, а весь набор
из 100 операций будет выполнен за 5+99=104 сек (ускорение по
сравнению с последовательным устройством почти в 5 раз (по числу
ступеней конвейера).
В общем случае – n операций будут выполнены на L-ступенчатом
конвейере за L+n-1 тактов (единиц времени), а последовательно – за
L*n единиц времени.
Казалось бы, конвейерную обработку можно заменить обычным
параллелизмом, продублировав основное устройство столько раз,
сколько ступеней конвейера предполагается выделить. Действительно,
5 неделимых устройств из нашего примера обработают выполнят 100
операций за 100 сек, чуть быстрее конвейерного устройства.
Однако! Увеличив в 5 раз число устройств, мы значительно увеличиваем
объем и стоимость аппаратуры. Представим, что на автозаводе решили
убрать конвейер, сохранив темпы выпуска автомобилей. Если раньше
на конвейере одновременно находилась 1000 автомобилей, то по
аналогии с предыдущим примером надо набрать 1000 бригад, каждая
из которых (1) в состоянии полностью собрать автомобиль от начала до
конца, выполнив сотни разного рода операций, и (2) сделать это за то
же время, что машина прежде находилась на конвейере. Можно
представили себе – насколько велика стоимость такого автомобиля.
64. Краткая история параллелизма (1)
Идеи параллелизма появились очень давно. Самарский в начале 50хпровел расчет эволюции взрывной волны водородной бомбы с
помощью нескольких десятков барышень с арифмометрами (одна из
первых реализаций принципа параллелизма).
Изначально элементы параллелизма внедрялись в передовых, единичных
компьютерах. Затем технологии спускались в компьютеры среднего
класса, а потом становились стандартом для ЭВМ, включая РС и ПК.
IBM 701 (1953), IBM 704 (1955): разрядно-параллельная память,
разрядно-параллельная арифметика.
Первые компьютеры имели разрядно-последовательную память, слова
считывались бит за битом. IBM701 - первый коммерчески доступный
компьютер, использующий разрядно-параллельную память и разряднопараллельную арифметику. Наибольшую популярность получила
модель IBM704 (продано 150 экз., впервые применена память на
ферритовых сердечниках и аппаратное АУ с плавающей точкой).
IBM 709 (1958): независимые процессоры ввода/вывода.
Процессоры первых компьютеров сами управляли вводом/выводом. Так
как скорость самого быстрого внешнего устройства (тогда магнитная
лента) в 1000 раз < скорости процессора, то во время ввода/вывода
процессор простаивал. Модель IBM709: к IBM704 присоединили 6
независимых процессоров ввода/вывода, которые могли работать
параллельно с основным процессором. Модель получилась очень
удачной, продано 400 экз., последний выключен аж в 1975 (20 лет!)
65. Краткая история параллелизма (2)
IBM STRETCH (1961): опережающий просмотр команд, расслоениепамяти. В 1956 подписан контракт IBM с Лос-Аламосской научной
лабораторией на разработку компьютера STRETCH. Две особенности:
(1) опережающий просмотр для считывания команд, вычисления адресов
и выборки операндов; т.е. совмещение различных этапов выполнения
нескольких команд
(2) расслоение памяти на два банка для согласования низкой скорости
выборки из памяти и более высокой скорости выполнения операций.
Каждый банк независимо может передавать данные а АЛУ. Прообраз
современной иерархии памяти
ATLAS (1963): конвейер команд. Разработка университета Манчестера.
Впервые использован конвейерный принцип, выполнение команд разбито
на 4 стадии: выборка команды, вычисление адреса операнда, выборка
операнда и выполнение операции. Это позволило уменьшить время
выполнения команд с 6мкс до 1.6мкс. (2тыс оп\сек!). ATLAS оказал
огромное влияние и на ПО: впервые использована мультипрограммная
ОС на базе использования виртуальной памяти и системы прерываний.
CDC 6600 (1964): независимые функциональные устройства.
Фирма Control Data Corporation (CDC), основанная Сеймуром Р. Крэем
(Seymour R. Cray) выпускает первый компьютер, в котором
использовано 10 независимых ФУ с производительностью 2-3 млн.
оп\сек. Впервые параллелизм в явном виде! Машина имела громадный
успех на научном рынке, активно вытесняя машины фирмы IBM.
66. Краткая история параллелизма (3)
CDC 7600 (1969) конвейерные независимые ФУ.Восемь независимых конвейерных ФУ – сочетание параллельной и
конвейерной обработки. 10-15 млн. оп/сек.
ILLIAC IV (1974): матричные процессоры.
Ключевая идея – матрица синхронно работающих процессоров. Проект 256 процессорных элементов (ПЭ) = 4 квадранта по 64ПЭ, возможность
реконфигурации: 2 квадранта по 128ПЭ или 1 квадрант из 256ПЭ, такт
40нс, производительность 1Гфлоп.
Реальность - работы начаты в 1967, к концу 1971 изготовлен 1 квадрант,
в 1974 введен в эксплуатацию, доводка велась до 1975; центральная
часть системы: устройство управления (УУ) + матрица 64ПЭ. Работал
до 1982, затем был сдан в музей.
УУ – простая ЭВМ с небольшой производительностью, управляющая
матрицей ПЭ; все ПЭ работают в синхронном режиме, выполняя в
каждый момент времени одну и ту же команду, поступившую от УУ, но
над своими данными. Каждый ПЭ имел собственное АЛУ с полным
набором команд, каждый ПЭ имел доступ только к своей ОП.
Стоимость в 4 раза выше, чем в проекте, сделан лишь 1 квадрант, такт
80нс, реальная производительность 50Мфлоп. Проект опередил свое
время, но оказал огромное влияние на архитектуру последующих ЭВМ.
IVTRAN: Идеи параллельных компилляторов.
Стрела, СССР, 60е – «групповые операции» - прообраз векторных ФУ.
67. Краткая история параллелизма (4)
CRAY 1 (1976): векторно-конвейерные процессоры – классика жанраВ 1972 С.Крэй покидает CDC и основывает компанию Cray Research,
которая в 1976 выпускает первый векторно-конвейерный компьютер
CRAY-1: время такта 12.5нсек, 12 конвейерных ФУ, пиковая
производительность 160млн оп\сек.
Главное новшество – введение векторных команд, работающих с целыми
массивами независимых данных и позволяющих эффективно
использовать векторно-конвейерные ФУ.
Более 10 лет ВК суперкомпьютеры Cray занимали лидирующие позиции в
производстве суперЭВМ.
К началу 2000х выявились три направления в архитектуре суперЭВМ.
(1) Векторно-конвейрные компьютеры.
Конвейерные ФУ & векторных команд. В отличие от традиционного
подхода, векторные команды оперируют целыми массивами
независимых данных, что позволяет эффективно загружать
доступные конвейеры. SSE, графические процессоры
Плюс: векторизацию осуществляет компилятор, т.е. не нужна специальная
технология распараллеливания; высокая производительность
Минус: высокая себестоимость векторных ФУ.
(2) Массивно-параллельные компьютеры с распределенной памятью.
ПЭ снабжены каждый своей локальной памятью и соединены между собой
посредством некоей коммуникационной среды (матрица).
68. Краткая история параллелизма (5)
Плюс: простота архитектуры, дешевизна, легко подобрать оптимальнуюконфигурацию по производительности и себестоимости
Минус: межпроцессорное взаимодействие намного медленнее, чем
локальная обработка данных самими процессорами. Поэтому
написать эффективную программу сложно. Пользователь должен
сам организовывать обмен данными между процессорами с
использованием специальных технологий.
(3) Параллельные компьютеры с общей памятью. Вся оперативная память
компьютеров разделяется несколькими одинаковыми процессорами.
Плюс: Единое адресное пространство, т.е. легче программированть; нет
проблемы межпроцессорного взаимодействия. многоядерность
Минус: Ограничено по техническим причинам число процессоров.
Архитектура NUMA (ccNUMA) объединение преимуществ логически
единого адресного пространства с масштабируемостью MPP-систем.
Конец 80х – начало 90х: прогресс микроэлектроники и коммуникационных
технологий привел к размыванию граней между суперкомпьютерами
и компьютерами серийного производства.
Напоминаем:
Суперкомпьютер
–
мелкосерийная
(штучная)
вычислительная установка, многократно превосходящая по
вычислительной мощности массово выпускаемые компьютеры, т.е.
(1) Не «ширпотреб»;
(2) Ориентация на снижение времени расчета «больших задач».
69. Краткая история параллелизма (6)
80е: массовое производство однокристальных микропроцессороввсеохватывающее распространение ПК.
1989: Микропроцессор Intel по своей производительности соответствует
Cray 1. Процессоры перестали делиться на обычные и особо мощные.
90е: Бурное развитие Ethernet, Fast Ethernet и других высокоскоростных
коммуникационных технологий привели к удешевлению ЭВМ с
распределенной памятью, к повышению их эффективности за счет
сокращения времени взаимодействия.
Кластеры выделенных рабочих станций. Кластер – связанный набор
полноценных компьютеров, используемый в качестве единого
ресурса. Кластеры строятся на базе объединения серийных
микропроцессоров с помощью серийных коммуникационных
технологий и с использованием стандартных ОС (главным образом,
UNIX\LINUX) и стандартизованных систем управления ресурсами. В
настоящее время все суперкомпьютеры списка Тор500 построены на
базе кластерных технологий, а также гибридных архитектур
Метакомпьютинг – объединение разнородных, пространственно
распределенных вычислительных ресурсов в единую вычислительную инфраструктуру. (ГРИД, Интернет-компьютинг)
ГРИД – среда, объединяющая находящиеся в разных местах
глобальной телекоммуникационной сети вычислительные установки
и предназначенная для выполнения распределенных приложений на
этих установках.
70. Многофункциональный информационно-вычислительный центр ЛИТ ОИЯИ (МИВК)
Многофункциональный информационновычислительный центр ЛИТ ОИЯИ (МИВК)ЦИВК (Tier2 + ферма для задач ОИЯИ,
около 350 тыс. ядер)
Tier1 (около 4200 ядер для поддержки
WLCG – Worldwide LHC Computer Grid, 3е
место после Tier1-сегментов после ЦЕРН
и FermiLab по количеству обработки
экспериментальных событий)
HybriLIT – гетерогенный кластер (250
cpu-cores + 77тыс gpu-cores)
Cloud infrastructure (700 cpu cores, 1 TB
RAN)
Суперкомпьютер «Говорун»
informatics