
- •Эвм и вычислительные системы».
- •Часть II.
- •Оглавление.
- •Лекция №19 конструкция персонального компьютера.
- •19.1. Основные конструктивные компоненты персонального компьютера.
- •19.2. Корпус пк.
- •19.3. Блок питания.
- •19.4. Системные платы.
- •19.5. Конструктивы и установка плат.
- •Лекция №20 ключевые микросхемы.
- •20.1. Стандартные микросхемы первых системных плат.
- •20.2. Набор микросхем или - chipset.
- •20.3. Микропроцессоры.
- •20.4. Организация доступа к памяти при использовании intel совместимых процессоров
- •Лекция №21 память компьютера
- •21.1. Иерархия подсистемы памяти пк.
- •21.2. Оперативная память.
- •21.3. Архитектура оперативной памяти.
- •21.4. Логическая организация памяти.
- •Лекция № 22 базовая система ввода/вывода.
- •22.1. Bios и cmos ram. Общие сведения.
- •22.2. Возможности bios. Конфигурирование системных ресурсов.
- •22.3. Тест начальной загрузки post.
- •Лекция № 23 кэш – память
- •23.1. Принципы построения кэш-памяти.
- •23.2. Типы кэшей
- •23.3. Целостность данных в кэш-памяти
- •23.4. Кэш-память и эффективность программ
- •Лекция №24 накопители на жестких дисках.
- •24.1. Типы накопителей.
- •24.2. Накопители на жестких дисках. (Винчестеры)
- •24.3. Параметры жестких дисков
- •24.4. Низкоуровневое форматирование
- •24.5. Логическая структура диска
- •24.6. Загрузочный сектор br (Boot Record).
- •24.7. Таблица размещения файлов fat (File Allocation Table).
- •24.8. Корневой каталог (root Directory).
- •24.9. Главный загрузочный сектор mbr (Master Boot Record).
- •24.10. Порядок установки винчестера.
- •24.11. Кэширование диска.
- •Лекция №25 интерфейсы винчестеров
- •25.1. Интерфейс st-506/412.
- •25.2. Интерфейс еsdi
- •25.3. Интерфейс scsi
- •25.4. Интерфейс ide (ata)
- •Лекция №26 шины персональных компьютеров.
- •26.1. Обзор шин пк.
- •26.2. Системные шины.
- •26.3. Локальные шины.
- •26.4. Шина pci (Peripheral Component Interconnect) (1992 год).
- •26.5. Магистральный интерфейс agp.
- •Лекция № 27 видеоподсистемы
- •27.1. Мониторы.
- •27.2. Основные стандарты мониторов (видеоадаптеров).
- •27.3. Проблемы цветопередачи.
- •27.4. Видеопамять.
- •27.5. Повышение скорости работы видеоадаптера.
- •Лекция № 28 современные видеоподсистемы персональных компьютеров.
- •28.1. Свойства современных видеоадаптеров
- •28.2. Современные видеоадаптеры
- •28.3. Архитектура персональных машин с объединенной памятью. Новая архитектура ibm-совместимых пк.
- •28.4. Варианты развития архитектуры uma
- •Лекция 29. Лекция №30 архитектура компьютера
- •30.1. Параллелизм, компьютерная архитектура и приложения пользователя
- •30.2. Однопроцессорные архитектуры
- •30.3. Многопроцессорные архитектуры
- •30.4. Выбор архитектуры
- •Лекция №31 архитектура современных программных средств План лекции
- •31.1. Программное обеспечение эвм
- •31.2. История развития программных средств эвм.
- •31.3. Структура программного обеспечения.
- •31.4. Проблемно-ориентированные пакеты прикладных программ.
- •Лекция №32 операционные системы эвм.
- •32.1. Системное программное обеспечение эвм
- •32.2. Операционные системы (ос) эвм
- •32.3. Организация операционных систем.
- •32.4. Концепция виртуальной операционной системы.
- •32.5. Типы операционных систем.
- •32.6. Операционная среда ms-dos.
- •32.7. Операционная система Unix.
- •Лекция № 33. Операционные системы эвм (продолжение).
- •33.1. Операционные оболочки эвм.
- •33.2. Многооконный графический интерфейс.
- •33.3. Инструментальное программное обеспечение (ипо) эвм.
- •33.4. Трансляторы с языка высокого уровня.
- •33.5. Двухуровневая организация схемы компилятора.
- •33.6. Естественные языки программирования.
- •Лекция № 34 прикладное программное обеспечение
- •34.1. Прикладное программное обеспечение эвм
- •34.3. Классы пакетов прикладных программ
- •34.4. Основные прикладные средства пк.
- •34.6. Качественные характеристики программного обеспечения
Лекция 29. Лекция №30 архитектура компьютера
План лекции
1. Понятие архитектуры ПК.
2. Однопроцессорные ПК.
3. Многопроцессорные ПК.
4. Выбор архитектуры.
30.1. Параллелизм, компьютерная архитектура и приложения пользователя
Термин "архитектура" в вычислительной технике означает способ обработки данных, например, "архитектура фон Неймана" или "параллельная архитектура", или определяет принципы организации и функционирования вычислительной системы, выпускаемой промышленностью, например, "архитектура IBM ESA" или "архитектура DEC AXP". Оба этих значения тесно связаны.
Каждая промышленная система базируется на строго определенном подходе к реализации процесса обработки информации. Основная масса современных вычислительных систем функционирует в соответствии с принципом фон Неймана, получившего название "управление потоком команд", так как процесс образуется последовательностью (потоком) команд, задаваемых программой, и имеет архитектуру класса SISD (Single Instruction Single Data - один поток команд, один поток данных). По фон Нейману данные занимают подчиненное положение, последовательность и способ их обработки определяются командами программы, т.е. ход выполнения вычислительного процесса определяется только потоком команд. Задача процессора сводилась к выбору команд программы и обработке данных по очереди.
В дальнейшем выяснилось, что большая или меньшая часть команд программы может выполняться одновременно и независимо друг от друга. Развитие вычислительной техники связано с расширением параллелизма программ и компьютеров.
Существует всего две причины, порождающие вычислительный параллелизм: независимость потоков команд, одновременно существующих в системе, и несвязанность данных, обрабатываемых в одном потоке команд. Первая основа параллелизма вычислительного процесса достаточно известна (это "обычное" мультиплексирование), то параллелизм данных в большинстве случаев скрыт от программиста и используется ограниченным кругом профессионалов.
Простейшим примером параллелизма данных является последовательность из двух команд:
По принципу фон Неймана данные команды должны выполняться последовательно, но порядок выполнения этих команд не имеет значения, так как операнды первой команды не связаны с операндами второй команды. Другими словами, обе операции являются параллельными, так как операнды этих команд не связаны между собой. Практически любая программа содержит группы операций над параллельными данными.
Другой вид параллелизма, как правило, возникает в циклических программных конструкциях типа DO, когда одни и те же операции выполняются N раз. Эти циклы, занимая около 4% кода программы требуют половины времени выполнения программы. Ускорение выполнения циклических вычислений решается с помощью класса векторных операций. простейшим примером цикла может служить операция сложения двух одномерных матриц (векторов) A[1:N] и B[1:N]:
При использовании компьютера фон Неймана последний должен выполнить как минимум N операций сложения элементов векторов A и B, не считая 2N команд приращения индекса и условного перехода. Идея векторной обработки циклов такого рода заключается в том, что в систему команд компьютера вводится операция сложения <A+B>, которая задает сложение всех элементов векторов-операндов. при этом реализуются две возможности ускорения вычислений: во-первых, сокращается число выполняемых процессором команд объектного кода, так как отпадает необходимость в пересчете индексов и организации условного перехода; во-вторых, все операции сложения элементов векторовоперандов могут быть выполнены одновременно в силу параллелизма этих операций. Если в компьютере заложена возможность одновременного выполнения N элементарных операций цикла, то исполнение векторной команды <A+B> потребует в N раз меньше времени, чем последовательная обработка всех операций A[i]+B[i] исходного цикла. В более общем случае, когда цикл DO содержит группу команд, можно говорить о том, что один поток команд (последовательность команд, записанных в теле цикла) обрабатывает множество потоков параллельных данных (рис.30.1). Существует достаточно широкий класс задач (аэродинамика, ядерная физика, обработка изображений и т.д.), в которых процент операций, выполняемых в циклах DO, достаточно велик и достигает 80...90%.
Рис.30.1.
Разработка проблемы программного параллелизма привела к классификации по шести уровням параллелизма. Три верхних уровня параллелизма занимают крупные программные объекты - независимые задания, программы и процедуры программы. Несвязанные операторы, циклы и операции образуют нижние уровни параллелизма (рис.30.2).
Рис. 30.2.
Если сравнить такое ранжирование с категориями "параллельные потоки команд" и "параллельные потоки данных", то становится очевидно, что параллелизм верхнего уровня в основном достигается за счет множества независимых командных потоков, а параллелизм нижнего уровня обязан своим существованием, главным образом, несвязанным потокам данных.
Возникает вопрос, как параллельные потоки команд и параллельные потоки данных связаны с архитектурой компьютеров ?
Ответ прост и заключается в следующей логической цепочке. Если все компьютерные системы различаются по архитектуре, а каждая архитектура ориентирована на определенный вид параллелизма, то для обеспечения наибольшей отдачи от работы вычислительной системы необходимо знать, какой тип параллелизма доминирует в задаче пользователя и как этот программный потенциал реализуется средствами системы. Используемая в компьютере операционная система и параллельный компилятор не могут достичь оптимального распараллеливания операций и в качестве обязательных средств содержат интерактивные оптимизаторы и анализаторы затрат. Более того, знание программистом особенностей функционирования кэш-памяти позволяет увеличить производительность своей задачи на 20...30%.
Какими средствами располагают современные компьютеры для превращения программного параллелизма в характеристики производительности системы ?
В первую очередь, это многопроцессорная обработка, с помощью которой реализуется параллелизм верхнего уровня (рис.30.2). На противоположном полюсе средств параллельной обработки располагается конвейер фаз операций, основной принцип которого следующий: каждый блок процессора выполняет только одну операцию, но зато очень быстро. Процесс выполнения команды разбивается на последовательность типовых этапов (обычно выборка команды, дешифрация операции, чтение операндов, исполнение и запись результата), и большая часть вычислительного процесса проходит в режиме совмещения выполнения команд в конвейере.
Конвейерная обработка является "естественным" средством реализации параллелизма несвязанных операций и циклов, но в каждом конкретном случае со своими нюансами. Несвязанные операции выполняются с помощью набора самостоятельных арифметических устройств в составе центрального процессора (принцип многофункциональной обработки). Обычный набор таких устройств состоит из устройств сложения, умножения, деления и выполнения логических и сдвиговых операций. Эти исполнительные устройства могут иметь конвейерную организацию, как в RISC-процессорах, или более дешевую последовательную структуру, но процессор, рассчитанный на многофункциональный параллелизм, всегда содержит конвейер совмещения операций.
Обработка параллелизма циклов требует либо глубокой конвейеризации, либо матричной структуры процессора (будет рассмотрен ниже). Во всяком случае, реализация этого типа параллелизма связана с использованием дорогих и быстродействующих аппаратных средств векторной обработки, которая является базой вычислительных систем сверхвысокой производительности - суперкомпьютеров.
Таким образом, существует глубокая связь в цепочке "приложения пользователя-программный параллелизм приложений-средства реализации параллелизма в системе-архитектура системы". Нарушение баланса в одном из звеньев этой последовательности приводит к резкому уменьшению производительности системы.