- •Архитектура вычислительных систем. Учебное пособие.
- •Характеристики и режимы работы эвм
- •Основные характеристики эвм
- •1.2. Режимы работы эвм
- •1.2.1. Однопрограммный режим работы
- •1.2.2. Мультипрограммный режим работы
- •1.2.3. Режим пакетной обработки
- •1.2.6. Режим работы в реальном масштабе времени
- •Классификация компьютеров по областям применения
- •2.1. Персональные компьютеры и рабочие станции
- •1.2.4. Режим разделения времени
- •1.2.5. Диалоговый режим работы
- •2.3. Серверы
- •2.4. Мейнфреймы
- •2.5. Кластерные архитектуры
- •3. Организация современного пк
- •Архитектура пк на базе набор микросхем 440 lx
- •3.1. Структура системной платы на наборе микросхем 440 lx
- •3.2. Типы системных плат на чипсете 440 lx
- •4. Функциональная и структурная организация процессоров
- •4.1. Классификация процессоров (cisc и risc)
- •4.2.Принципы организации процессоров
- •4.2.1. Назначение и структура процессора
- •Структура микропроцессора
- •4.2.2. Основные регистры процессоров
- •Операционное устройство и шинный интерфейс
- •4.2.3. Способы организации управления вычислительным процессом
- •Схемный принцип управления
- •Микропрограммный принцип
- •4.2.4. Технология mmx
- •Отображение ммх-регистров на fpu-регистры
- •Влияние ммх-команд на контекст fpu
- •4.2.5. Принципы конвейерной технологии
- •Представление о работе конвейера
- •Диаграмма работы простейшего конвейера
- •4.3. Микроархитектура процессоров p5
- •Структурная схема микропроцессора Pentium
- •4.4. Микроархитектура процессоров семейства р6
- •Структурная схема микропроцессора Pentium Pro
- •Ядро и подсистемы памяти Pentium
- •Устройство выборки/декодирования
- •Структура устройства диспетчирования/выполнения
- •Устройство отката
- •Интерфейс с шиной
- •4.5. Микроархитектура процессоров семейства amd
- •Микроархитектура процессора amd-k6-2
- •Микроархитектура процессора amd Athlon
- •Рабочая схема модуля вычислений с плавающей точкой
- •Организация системной шины
- •5.Принципы организации системы прерывания программ
- •5.1. Классы сигналов прерывания
- •5.2. Распределение прерываний в пк на базе процессоров х86
- •Распределение аппаратных прерываний
- •5.3. Приоритеты прерываний
- •Временная диаграмма возможного процесса прерывания программы
- •Определение исполнение программ в системе с учетом приоритетности запросов прерывания
- •5.4. Защита от прерывания
- •Организация памяти пк
- •6.1. Иерархии памяти
- •6.2. Организация кэш-памяти
- •6.3. Организация оперативной памяти (ram)
- •6.3.1. Типы и классификация оп
- •Прямая регистровая адресация
- •6.3.2.4. Подразумеваемая адресация
- •6.3.2.5. Косвенная адресация
- •Косвенная адресация с использованием оперативной памяти
- •6.3.2.6. Косвенная регистровая адресация
- •6.3.2.7. Модификация адресов
- •Индексная адресация с использованием регистров
- •6.3.2.8. Относительная адресация
- •Относительная адресация
- •Формирование исполнительного адреса при относительной и индексной адресации
- •6.4. Организация виртуальной памяти
- •6.4.1. Страничная адресация памяти
- •Адреса при страничной адресации
- •Порядок использования таблицы страниц
- •6.4.2. Сегментация памяти
- •7. Организация ввода-вывода
- •7.2. Системные и локальные шины
- •7.3. Шины ввода/вывода
- •7.3.1. Шина agp
- •Схемы pci и agp
- •7.3.2. Шина usb
- •Топология шины usb
- •7.3.3. Шины ide и scsi
- •8. Периферийные устройства
- •Примеры устройств ввода/вывода
- •8.1. Магнитные и магнитооптические диски
Представление о работе конвейера
Время в тактах
СС1 СС2 СС3 СС4 СС5 СС6 СС7 СС8
П
IM
REG
REG
DM
АЛУ
IM
REG
REG
DM
АЛУ
IM
REG
REG
DM
АЛУ
IM
REG
REG
DM
АЛУ
о
р
я
д
о
к
в
ы
п
о
л
н
е
н
и
я
к
о
м
а
н
д
Рис. 4.7.
Таблица 4.2.
Диаграмма работы простейшего конвейера
Номер команды |
Номер такта |
||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Команда i |
IF |
ID |
EX |
MEM |
WB |
|
|
|
|
Команда i+1 |
|
IF |
ID |
EX |
MEM |
WB |
|
|
|
Команда i+2 |
|
|
IF |
ID |
EX |
MEM |
WB |
|
|
Команда i+3 |
|
|
|
IF |
ID |
EX |
MEM |
WB |
|
Команда i+4 |
|
|
|
|
IF |
ID |
EX |
MEM |
WB |
В качестве примера рассмотрим неконвейерную машину с пятью этапами выполнения операций, которые имеют длительность 50, 50, 60, 50 и 50 нс соответственно. Пусть накладные расходы на организацию конвейерной обработки составляют 5 нс. Тогда среднее время выполнения команды в неконвейерной машине будет равно 260 нс. Если же используется конвейерная организация, длительность такта будет равна длительности самого медленного этапа обработки плюс накладные расходы, т.е. 65 нс. Это время соответствует среднему времени выполнения команды в конвейере. Таким образом, ускорение, полученное в результате конвейеризации, будет равно:
Среднее время выполнения команды в неконвейерном режиме - 260
= 4
Среднее время выполнения команды в конвейерном режиме - 65
Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной, а скорость подачи новых команд и операндов соответствует максимальной производительности конвейера. Если произойдет задержка, то параллельно будет выполняться меньше операций и суммарная производительность снизится. Такие задержки могут возникать в результате возникновения конфликтных ситуаций.
При реализации конвейерной обработки возникают ситуации, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее такте. Такие ситуации называются конфликтами. Конфликты снижают реальную производительность конвейера, которая могла бы быть достигнута в идеальном случае. Существуют три класса конфликтов:
Структурные конфликты, которые возникают из-за конфликтов по ресурсам, когда аппаратные средства не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения с совмещением.
Конфликты по данным, возникающие в случае, когда выполнение одной команды зависит от результата выполнения предыдущей команды.
Конфликты по управлению, которые возникают при конвейеризации команд переходов и других команд, которые изменяют значение счетчика команд.
Конфликты в конвейере приводят к необходимости приостановки выполнения команд (pipeline stall). Обычно в простейших конвейерах, если приостанавливается какая-либо команда, то все следующие за ней команды также приостанавливаются. Команды, предшествующие приостановленной, могут продолжать выполняться, но во время приостановки не выбирается ни одна новая команда.
