- •Введение
- •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)
- •Список использованных источников
1.4. Совместимость и мобильность программного обеспечения
Концепция программной совместимости впервые в широких масштабах была применена разработчиками системы IBM/360. Основная задача при проектировании всего ряда моделей этой системы заключалась в создании такой архитектуры, которая была бы одинаковой с точки зрения пользователя для всех моделей системы независимо от цены и производительности каждой из них. Огромные преимущества такого подхода, позволяющего сохранять существующий задел программного обеспечения при переходе на новые (как правило, более производительные) модели были быстро оценены как производителями компьютеров, так и пользователями, и начиная с этого времени практически все фирмы-поставщики компьютерного оборудования взяли на вооружение эти принципы, поставляя серии совместимых компьютеров. Следует заметить, однако, что со временем даже самая передовая архитектура неизбежно устаревает и возникает потребность внесения радикальных изменений архитектуру и способы организации вычислительных систем.
В настоящее время одним из наиболее важных факторов, определяющих современные тенденции в развитии информационных технологий, является ориентация компаний-поставщиков компьютерного оборудования на рынок прикладных программных средств. Это объясняется прежде всего тем, что для конечного пользователя в конце концов важно программное обеспечение, позволяющее решить его задачи, а не выбор той или иной аппаратной платформы. Переход от однородных сетей программно совместимых компьютеров к построению неоднородных сетей, включающих компьютеры разных фирм-производителей, в корне изменил и точку зрения на саму сеть: из сравнительно простого средства обмена информацией она превратилась в средство интеграции отдельных ресурсов - мощную распределенную вычислительную систему, каждый элемент которой (сервер или рабочая станция) лучше всего соответствует требованиям конкретной прикладной задачи.
Этот переход выдвинул ряд новых требований. Прежде всего, такая вычислительная среда должна позволять гибко менять количество и состав аппаратных средств и программного обеспечения в соответствии с меняющимися требованиями решаемых задач. Во-вторых, она должна обеспечивать возможность запуска одних и тех же программных систем на различных аппаратных платформах, т.е. обеспечивать мобильность программного обеспечения. В третьих, эта среда должна гарантировать возможность применения одних и тех же человеко-машинных интерфейсов на всех компьютерах, входящих в неоднородную сеть. В условиях жесткой конкуренции производителей аппаратных платформ и программного обеспечения сформировалась концепция открытых систем, представляющая собой совокупность стандартов на различные компоненты вычислительной среды, предназначенных для обеспечения мобильности программных средств в рамках неоднородной, распределенной вычислительной системы.
Одним из вариантов моделей открытой среды является модель OSE (Open System Environment), предложенная комитетом IEEE POSIX. На основе этой модели национальный институт стандартов и технологии США выпустил документ "Application Portability Profile (APP). The U.S. Government's Open System Environment Profile OSE/1 Version 2.0", который определяет рекомендуемые для федеральных учреждений США спецификации в области информационных технологий, обеспечивающие мобильность системного и прикладного программного обеспечения. Все ведущие производители компьютеров и программного обеспечения в США в настоящее время придерживаются требований этого документа.