
- •Организация эвм и систем
- •Глава 6 Организация памяти
- •Глава 1. Структура современного компьютера
- •1.1 Основные понятия
- •1.2 Принцип действия компьютера
- •Цикл работы компьютера
- •1.3 Программное обеспечение компьютера
- •1.4 Надежность, производительность и показатели быстродействия
- •Производительность компьютера
- •Технико-эксплуатационные характеристики
- •1.5 Вычислительные системы и сети
- •Вопросы для самопроверки
- •Глава 2 представление информации в компьютере
- •5.2 Система команд. Форматы команд и способы адресации
- •5.3 Система прерываний и приостановок, состояние процессора
- •Характеристики системы прерываний
- •Организация перехода к прерывающей программе
- •5.4 Режимы работы процессора: однопрограммный, пакетный, разделения времени, реального времени
- •5.5 CisCиRisCкомпьютеры
- •Процессоры персональных компьютеров
- •5.6 Устройства управления
- •Устройства управления с хранимой в памяти логикой
- •5.7 Методы и средства повышения производительности процессоров персональных компьютеров
- •Суперскалярная обработка
- •Переименование регистров
- •Динамическое прогнозирование условных переходов
- •Контроллер памяти Контроллер pci
- •Вопросы для самопроверки
- •Глава 6. Организация памяти
- •6.1 Адресное пространство
- •6.2 Виды памяти
- •6.3 Оперативная память
- •Статическая и динамическая память
- •6.5 Внешняя память
- •6.6 Организация виртуальной памяти
- •Страничное, сегментное и странично-сегментное распределение
- •Свопинг
- •6.7 Защита памяти
- •Вопросы для самопроверки
- •Глава 7. Интерфейсы
- •7.1 Понятие интерфейса и его характеристики
- •7.1 Состав линий системной шины
- •Передача данных по проводным линиям связи По линиям связи современных интерфейсов преимущественно передаются низкочастотные дискретные одно - и биполярные сигналы (рисунок 7.Х).
- •Адрес верный
- •7.2 Подключение устройств
- •7.4 Интерфейсы внешней памяти
- •7.5 Малые интерфейсы (usb,ide,rs-232c,scsi)
- •Вопросы для самопроверки
- •Глава 8. Периферийные устройства компьютеров
- •8.1 Организация систем ввода-вывода. Каналы, контроллеры
- •Основные функции свв
- •Программный ввод-вывод
- •Прямой доступ в память
- •8.2 Клавиатура и мышь
- •8.3 Дисплеи
- •8.4 Принтеры
- •8.5 Накопители на магнитных дисках
- •Структура накопителя на жестких дисках
- •Структура и особенности накопителя на гмд
- •8.6 Накопители на компакт-дисках (cd-rom, cd-r, cd-rw, dvd)
- •8.7 Другие виды периферийных устройств
- •Вопросы для самопроверки
- •Какие особенности пу делают возможным организацию параллельной обработки и ввода-вывода?
- •Закон Амдала
- •Совместно используемая и распределенная память
- •Когерентность кэш-памяти
- •Наибольшее распространение получили следующие аппаратные механизмы, реализующие протокол когерентности кэш-памяти: это протоколы наблюдения и на основе справочника.
- •9.2 Конвейерные системы
- •Векторные регистры
- •9.3 Симметричные системы
- •9.4 Вычислительные системы со сверхдлинным командным словом
- •9.5 Другие виды мультипроцессорных систем
- •Машины с массовым параллелизмом
- •Нейрокомпьютеры
- •9.6 Проблемно-ориентированные системы
- •Вопросы для самопроверки
- •Глава 10. Организация вычислительного процесса
- •12.2 Системы автоматического контроля и диагностики
- •Контроль передач информации
- •Контроль арифметических операций
- •12.3 Защита памяти. Raid-массивы
- •12.4 Построение «безотказных» систем питания Вопросы для самопроверки
- •Список литературы
5.7 Методы и средства повышения производительности процессоров персональных компьютеров
Принципы, на которых строится работа процессора, рассмотрены выше. Эти принципы предполагают строго последовательное выполнение всех операций. Но такой процессор не может обладать большой производительностью из-за последовательного характера выполнения операций. Поэтому в современных компьютерах используют множество приемов, призванных повысить производительность компьютеров – от использования средств низкоуровневого параллелизма до построения многопроцессорных и многомашинных систем. В этой главе остановимся на некоторых наиболее распространенных методах повышения производительности процессоров, находящих применение в персональных компьютерах. К числу этих методов относятся:
конвейерная обработка,
суперскалярная обработка,
переименование регистров,
динамическое прогнозирование условных переходов,
сопроцессирование.
Конвейерная обработка информации
Конвейеризация команд – это один из признанных принципов повышения производительности компьютера. Он находит применение не только в персональных компьютерах, но и в ЭВМ общего назначения. Для выполнения любой команды необходимо устройство, осуществляющее действия в соответствии с ее кодом операции. Для ускорения обработки это устройство выполняют в виде нескольких ступеней, или фаз, причем на каждой ступени производится лишь определенная часть обработки команды. Это так называемый метод конвейерной обработки команд: в каждый момент времени на конвейерном процессоре обрабатывается несколько команд, причем все они находятся на разных стадиях обработки. Приход очередного тактового импульса приводит к перемещению обрабатываемых команд на следующую ступень конвейера, полностью выполненная команда покидает конвейер, а на освободившуюся первую ступень подается новая команда.
Это конвейер команд. Он состоит из множества ступеней (так конвейер в одной из последних моделей процессора PentiumIYсостоит из 31 ступеней, а в процессореAMD– из 14), однако для наглядности и простоты изложения мы рассмотрим работу синхронного конвейера, состоящего из пяти ступеней, см. рисунок 5.х. Такие конвейеры были характерны для многих процессоров персональных компьютеров недалекого прошлого.
Выполнение типичной арифметической команды в пятиступенчатом конвейере можно разделить на пять этапов:
выборка команды,
декодирование кода операции,
выборка операндов (из регистров),
собственно выполнение операции,
запоминание результата.
При последовательном выполнении команд для реализации программы, состоящей из k команд, потребуется 5k тактов, а если их выполнять в конвейере, то всего (5 + k) тактов. Таким образом, пятиступенчатый конвейер обеспечивает ускорение при выполнении программы в 5k/(5 + k) раз, но это происходит только при его полной загрузке.
Любые команды в таком конвейере выполняются за пять тактов, но результаты очередной команды появляются в каждом такте, если не учитывать время загрузки и выполнение команды переходов. Результат любой команды будет сформирован только на последней пятой ступени конвейера, т.е. через 5T (здесь T означает период между приходом тактовых сигналов) после загрузки команды в конвейер. За это время в конвейер поступит еще четыре команды, этот процесс иллюстрируется на рисунке 5.х.
Запись
результата
заносится в память или регистры.
Исполнение
в соответствии с кодом операции.
Выборка
операндов результата
операции, и передаются в регистры процессора.
Декодирование
формат внутренних команд.
Выборка
команды
буферные регистры предварительной выборки.
Рисунок 5.х Выполнение команд в пятиступенчатом конвейере
Если же эта первая команда является командой перехода, то следующие четыре уже загруженные в конвейер и начавшие выполнение команды могут оказаться ненужными. Команда перехода нарушает линейный порядок следования команд и требует перезагрузки конвейера. Таким образом, команды переходов снижают эффективность конвейерной обработки, приводя к приостановкам конвейера. Чем больше команд перехода, тем чаще возникает перезагрузка конвейера и тем меньше производительность.
Пусть m – число ступеней командного конвейера, а n – среднее число команд между двумя соседними командами переходов (средняя длина линейного участка программы). Тогда выполнение этого линейного участка с помощью конвейера команд завершится за время
Tk = TН + TО.
Здесь TН - длительность загрузки конвейера, а TО - длительность обработки. Считая, что длительность загрузки завершается за один такт, а линейныйучасток программы выполняется в конвейере за n/m тактов, эффективность конвейера (отношение времени выполнения программы в конвейере ко времени последовательного выполнения той же программы Tn в обычном процессоре) можно оценить как
Tk/ Tn = (1/n + 1/m).
На каждой ступени такого конвейера выполняемые действия завершаются за разное время, поэтому подготовленные на одной из ступеней результаты для поддержания синхронного принципа работы должны ожидать завершения обработки на другой. Следовательно, тактовая частота работы конвейера выбирается так, чтобы завершить выполнение действий на самой продолжительной фазе операции. По этой причине, а также из-за необходимости передавать частичные результаты между различными ступенями конвейера его предельное ускорение будет несколько меньше количества фаз.
Построив длинный конвейер, состоящий из большего числа ступеней, можно еще больше увеличить быстродействие процессора. В длинном конвейере сокращается число вентилей на каждой ступени, поскольку она становится проще, и повышается тактовая частота. Каждая команда разбивается на большее число более коротких фаз, что приводит к незначительному увеличению времени ожидания результатов первой команды, но сокращает время ожидания результатов очередной команды. Однако в таких длинных конвейерах, если приостанавливается выполнение какой-либо команды, то выполнение всех следующих за ней команд также приостанавливается; кроме того, не всякую операцию можно разбить на достаточно большое число независимых фаз. Это вызывает возникновение «пустых» фаз, на которых обработка команды не производится, что значительно снижает производительность такого конвейера.