Выполнение команды разделяется на следующие этапы:
1) Выборка команды и формирование адреса следующей команды и считывание её в буфер.
2) Дешифрация команды.
3) Вычисление адресов операндов.
4) Выборка операндов.
5) Использование необходимых операндов и размещение результата.
1-я команда |
ВК |
ДК |
ВАО |
ВО ¯ М |
ИК ¯ М |
||||||||
2-я команда |
ВК |
ДК |
ВАО |
ВО ¯ М |
ИК ¯ М |
||||||||
3-я команда |
ВО ¯ М |
ИК * |
|||||||||||
4-я команда |
ВК |
ДК |
ВАО |
ВО |
ИК |
Это пятиступенчатый конвейер, т.е. сразу 5 команд.
В этом случае вместо 20 тактов используется 13. разрывы в процессе выполнения команд обусловлены тем, что в локальный момент времени обращение к памяти может быть только одной команды. Задержки на 5 тактов. Начало выполнения 4-ой команды обусловлено тем, что в эти такты идёт обращение к памяти (®М) трёх предыдущих команд.
Ситуация, обозначенная * подразумевает 2 варианта:
1) команда считывается из буфера (ВК), а результат операции 3-ей команды помещается в память.
2) Команда считывается из памяти (ВК), а результат выполнения 3-ей команды помещается в РОН.
Дальнейшее повышение быстродействия сдерживается:
1) неодинаковой длительностью информации на различных стадиях выполнения команды, т.е. длительность различных этапов конвейера неодинакова, из-за чего возникают циклы ожидания.
2) Наличие условных переходов, из-за чего обнуляется весь конвейер (в том числе и буфер команды).
3) Из-за наличия прерывания.
Выравнивание длительности этапов конвейера возможно:
1) дальнейшим разбиением команды на подкоманды (достижение уровня микрокоманды). Однако этот метод требует дополнительных аппаратных затрат.
2) Снижением количество пересылок из памяти и обратно, а также перераспределение информации между RG (в RISC процессоре для этого используются файловые окна и большое количество РОН, благодаря чему значительно сокращается количество обращений к памяти и исключаются дополнительные пересылки данных, т.к. результаты предыдущей операции хранятся в РОН и читать их обратно из памяти не требуется).
Ветвления:
1. Исполнение нескольких потоков.
В этом случае стараются обеспечить конвейеру выбор нескольких команд, исполнение при этом происходит сразу в нескольких потоках, т.е. в конвейер могут поступать команды до принятия решения. Для решения этой задачи требуется дополнительный конвейер. А по результатам выполнения команды выбирается конвейер, в котором в данный момент времени выполняется команда.
2. Предварительная выборка операций ветвления.
При поступлении команды условного перехода помимо следующей за ней выбирается операция ветвления и если в результате выполнения команды необходимо осуществлять ветвление, то операция уже выбрана, т.е. она находится в буфере. В этом случае конвейер очищается, а информация в буфере сохраняется.
3. Прогнозирование ветвления.
Основано либо на предыдущей проверке программы в процессе её работы, либо на динамическом изменении частоты ветвления.
4. Отложенное ветвление.
В этом случае происходит автоматическое перераспределение команд по программе таким образом, чтобы ветвление происходило позже, чем указано в первоначальном варианте.
1,2,3 – аппаратно, а 4 – программным способом.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.