- •Введение
- •1. Общие требования, предъявляемые к современным компьютерам
- •1.1. Отношение стоимость/производительность
- •1.2. Надежность и отказоустойчивость
- •1.3. Масштабируемость
- •1.4. Совместимость и мобильность программного обеспечения
- •2. Классификация компьютеров по областям применения
- •2.1. Персональные компьютеры и рабочие станции
- •2.3. Серверы
- •2.4. Мейнфреймы
- •2.5. Кластерные архитектуры
- •3. Оценка производительности вычислительных систем
- •3.1. Общие замечания
- •3.6.1. Тесты tpc
- •3.6.2. Тест tpc-a
- •3.6.3. Тест tpc-b
- •3.6.4. Тест tpc-c
- •3.6.5. Следующие тесты tpc
- •4. Основные архитектурные понятия
- •4.1. Определение понятия "архитектура"
- •4.2. Архитектура системы команд. Классификация процессоров (cisc и risc)
- •4.3. Методы адресации и типы данных
- •4.3.1. Методы адресации
- •4.3.2. Типы команд
- •4.4. Команды управления потоком команд
- •4.5. Типы и размеры операндов
- •5. Конвейерная организация
- •5.1. Что такое конвейерная обработка
- •5.2. Простейшая организация конвейера и оценка его производительности
- •5.3. Структурные конфликты и способы их минимизации
- •5.4. Конфликты по данным, остановы конвейера и реализация механизма обходов
- •5.5. Классификация конфликтов по данным
- •5.5.1. Конфликты по данным, приводящие к приостановке конвейера
- •5.5.2. Методика планирования компилятора для устранения конфликтов по данным
- •5.6. Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению
- •5.7. Снижение потерь на выполнение команд условного перехода
- •5.7.1. Метод выжидания
- •5.7.2. Метод возврата
- •5.7.3. Задержанные переходы
- •5.7.4. Статическое прогнозирование условных переходов: использование технологии компиляторов
- •5.8. Проблемы реализации точного прерывания в конвейере
- •5.9. Обработка многотактных операций и механизмы обходов в длинных конвейерах
- •5.10. Конфликты и ускоренные пересылки в длинных конвейерах
- •5.11. Поддержка точных прерываний
- •6.Конвейерная и суперскалярная обработка
- •6.1. Параллелизм на уровне выполнения команд, планирование загрузки конвейера и методика разворачивания циклов
- •6.2. Параллелизм уровня команд: зависимости и конфликты по данным
- •6.3. Зависимости
- •6.4. Параллелизм уровня цикла: концепции и методы
- •6.5. Основы планирования загрузки конвейера и разворачивание циклов
- •6.6. Устранение зависимостей по данным и механизмы динамического планирования
- •6.6.1. Основная идея динамической оптимизации
- •6.6.2. Динамическая оптимизация с централизованной схемой обнаружения конфликтов
- •6.6.3. Другой подход к динамическому планированию - алгоритм Томасуло
- •6.7. Аппаратное прогнозирование направления переходов и снижение потерь на организацию переходов
- •6.7.1. Буфера прогнозирования условных переходов
- •6.7.2. Дальнейшее уменьшение приостановок по управлению: буфера целевых адресов переходов
- •6.8. Одновременная выдача нескольких команд для выполнения и динамическое планирование
- •6.8.1. Суперскалярные машины
- •6.8.2. Архитектура машин с длинным командным словом
- •6.9. Обнаружение и устранение зависимостей компилятором и разворачивание циклов
- •6.9.1. Обнаружение и устранение зависимостей
- •6.9.2. Программная конвейеризация: символическое разворачивание циклов
- •6.10. Аппаратные средства поддержки большой степени распараллеливания
- •6.10.1. Условные команды
- •6.10.2. Выполнение по предположению (speculation)
- •Список использованных источников
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Воронежский государственный технический университет
О.Я.Кравец, Е.С.Подвальный
ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ: АРХИТЕКТУРА, КОНВЕЙЕРИЗАЦИЯ, ПАРАЛЛЕЛИЗМ
Учебное пособие
Воронеж 2002
ББК 32.973.202я73
К78
Кравец О.Я., Подвальный Е.С. Организация вычислительных систем: архитектура, конвейеризация, параллелизм: Учебное пособие. - Воронеж: Воронеж. гос. техн. ун-т, 2002. 154 с.
Учебное пособие охватывает круг вопросов, связанных с основами построения современных вычислительных систем. Рассмотрена концепция архитектуры вычислительных систем, исследованы методы оценки производительности, дан краткий обзор идей параллелизма, проанализированы методы управления конвейеризацией в высокопроизводительных вычислительных системах.
Пособие предназначено для студентов, обучающихся по специальности 220100 "Вычислительные машины, комплексы, системы и сети", 351400 "Прикладная информатика (по отраслям)" при изучении дисциплины «Организация ЭВМ, комплексов и компьютерных сетей», а также может быть полезно и для студентов непрофильных специальностей в качестве введения в проблемы построения информационно-вычислительных систем и методы управления ими.
Учебное пособие подготовлено на магнитном носителе в текстовом редакторе MS Word 97 и содержится в файле «текст_архитектура_1.doc».
Табл. 25. Ил. 30. Библиогр.: 7 назв.
Рецензенты: Кафедра прикладной математики Липецкого государственного технического университета;
докт. техн. наук, проф. С.А.Баркалов
Издается по решению редакционно-издательского совета Воронежского государственного технического университета
ББК 32.973.202я73
Кравец О.Я., Подвальный Е.С., 2002
Оформление. Воронежский государственный технический университет, 2002
Содержание
Введение 6
1. Общие требования, предъявляемые к современным компьютерам 7
1.1. Отношение стоимость/производительность 7
1.2. Надежность и отказоустойчивость 7
1.3. Масштабируемость 8
1.4. Совместимость и мобильность программного обеспечения 9
2. Классификация компьютеров по областям применения 10
2.1. Персональные компьютеры и рабочие станции 10
2.2. X-терминалы 13
2.3. Серверы 14
2.4. Мейнфреймы 17
2.5. Кластерные архитектуры 18
3. Оценка производительности вычислительных систем 22
3.1. Общие замечания 22
3.2. MIPS 24
3.3. MFLOPS 25
3.4. SPECint92, SPECfp92 28
3.5. SPECrate_int92, SPECrate_fp92 30
3.6. TPC-A, TPC-B, TPC-C 30
3.6.1. Тесты TPC 32
3.6.2. Тест TPC-A 32
3.6.3. Тест TPC-B 33
3.6.4. Тест TPC-C 34
3.6.5. Следующие тесты TPC 35
3.6.6. AIM 35
4. Основные архитектурные понятия 39
4.1. Определение понятия "архитектура" 39
4.2. Архитектура системы команд. Классификация процессоров (CISC и RISC) 40
4.3. Методы адресации и типы данных 42
4.3.1. Методы адресации 42
4.3.2. Типы команд 45
4.4. Команды управления потоком команд 45
4.5. Типы и размеры операндов 48
5. Конвейерная организация 48
5.1. Что такое конвейерная обработка 48
5.2. Простейшая организация конвейера и оценка его производительности 49
5.3. Структурные конфликты и способы их минимизации 53
5.4. Конфликты по данным, остановы конвейера и реализация механизма обходов 55
5.5. Классификация конфликтов по данным 57
5.5.1. Конфликты по данным, приводящие к приостановке конвейера 58
5.5.2. Методика планирования компилятора для устранения конфликтов по данным 59
5.6. Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению 62
5.7. Снижение потерь на выполнение команд условного перехода 63
5.7.1. Метод выжидания 64
5.7.2. Метод возврата 64
5.7.3. Задержанные переходы 65
5.7.4. Статическое прогнозирование условных переходов: использование технологии компиляторов 68
5.8. Проблемы реализации точного прерывания в конвейере 69
5.9. Обработка многотактных операций и механизмы обходов в длинных конвейерах 71
5.10. Конфликты и ускоренные пересылки в длинных конвейерах 74
5.11. Поддержка точных прерываний 77
6.Конвейерная и суперскалярная обработка 79
6.1. Параллелизм на уровне выполнения команд, планирование загрузки конвейера и методика разворачивания циклов 79
6.2. Параллелизм уровня команд: зависимости и конфликты по данным 80
6.3. Зависимости 82
6.4. Параллелизм уровня цикла: концепции и методы 88
6.5. Основы планирования загрузки конвейера и разворачивание циклов 91
6.6. Устранение зависимостей по данным и механизмы динамического планирования 95
6.6.1. Основная идея динамической оптимизации 95
6.6.2. Динамическая оптимизация с централизованной схемой обнаружения конфликтов 96
6.6.3. Другой подход к динамическому планированию - алгоритм Томасуло 102
6.7. Аппаратное прогнозирование направления переходов и снижение потерь на организацию переходов 110
6.7.1. Буфера прогнозирования условных переходов 110
6.7.2. Дальнейшее уменьшение приостановок по управлению: буфера целевых адресов переходов 117
6.8. Одновременная выдача нескольких команд для выполнения и динамическое планирование 121
6.8.1. Суперскалярные машины 122
6.8.2. Архитектура машин с длинным командным словом 127
6.9. Обнаружение и устранение зависимостей компилятором и разворачивание циклов 130
6.9.1. Обнаружение и устранение зависимостей 130
6.9.2. Программная конвейеризация: символическое разворачивание циклов 134
6.10. Аппаратные средства поддержки большой степени распараллеливания 141
6.10.1. Условные команды 142
6.10.2. Выполнение по предположению (speculation) 145
Список использованных источников 154
Введение
Учебное пособие охватывает круг вопросов, связанных с основами построения современных вычислительных систем. Рассмотрена концепция архитектуры вычислительных систем, исследованы методы оценки производительности, дан краткий обзор идей параллелизма, проанализированы методы управления конвейеризацией в высокопроизводительных вычислительных системах.
Пособие предназначено для студентов, обучающихся по специальности 220100 "Вычислительные машины, комплексы, системы и сети", 351400 "Прикладная информатика (по отраслям)", а также может быть полезно и для студентов непрофильных специальностей в качестве введения в проблемы построения информационно-вычислительных систем и методы управления ими.
Учебное пособие ориентировано на изучение дисциплин «Организация ЭВМ, комплексов и систем», «Микропроцессоры», «Периферийные устройства» и ряда других.
Учебное пособие в основном следует изложению обзора «Современные высокопроизводительные компьютеры», В.Шнитман.
Предлагаемое читателю учебное пособие покрывает первую часть соответствующей дисциплины.
Первый раздел содержит описание общих требования, предъявляемых к современным компьютерам. Во втором – дана классификация компьютеров по областям применения. Методам оценки производительности вычислительных систем посвящен третий раздел. Основные архитектурные понятия высокопроизводительных систем являются основой четвертого раздела. Принципы конвейерной организации раскрываются в пятом разделе, а основы конвейерной и суперскалярной обработки – в шестом.
В написании подраздела 5.3 принимал участие А.В.Пономарев, 2.5 – С.Р.Прохончуков.
1. Общие требования, предъявляемые к современным компьютерам
1.1. Отношение стоимость/производительность
Появление любого нового направления в вычислительной технике определяется требованиями компьютерного рынка. Поэтому у разработчиков компьютеров нет одной единственной цели. Большая универсальная вычислительная машина (мейнфрейм) или суперкомпьютер стоят дорого. Для достижения поставленных целей при проектировании высокопроизводительных конструкций приходится игнорировать стоимостные характеристики. Суперкомпьютеры фирмы Cray Research и высокопроизводительные мейнфреймы компании IBM относятся именно к этой категории компьютеров. Другим крайним примером может служить низкостоимостная конструкция, где производительность принесена в жертву для достижения низкой стоимости. К этому направлению относятся персональные компьютеры различных клонов IBM PC. Между этими двумя крайними направлениями находятся конструкции, основанные на отношении стоимость/производительность, в которых разработчики находят баланс между стоимостными параметрами и производительностью. Типичными примерами такого рода компьютеров являются миникомпьютеры и рабочие станции.
Для сравнения различных компьютеров между собой обычно используются стандартные методики измерения производительности. Эти методики позволяют разработчикам и пользователям использовать полученные в результате испытаний количественные показатели для оценки тех или иных технических решений, и, в конце концов именно производительность и стоимость дают пользователю рациональную основу для решения вопроса, какой компьютер выбрать.