2) Архитектура RISC процессоров позволяет реализовать полный компьютер на одном кристалле (из-за отсутствия микропрограммного управления).

Конвейерная обработка информации в вычислителях с СНК

Конвейер, как правило, включает в себя 2 стадии:

-  выборка команды;

-  её выполнение.

Можно совместить эти 2 стадии во времени, т. е.

-  выполнение текущей команды;

-  выборка следующей команды.

Однако удвоение скорости не получается, т. к. присутствуют команды ветвления. Потери эти могут быть уменьшены путём прогнозирования переходов.

Для современных компьютеров существует элементарное правило: в случае условного перехода, при определении адреса следующей команды, выбирается следующая после выполняемой, т. е. если ветвление не состоялось, то потери времени минимальны. Если ветвление произошло, то предварительно выбранная команда отбрасывается.

Выполнение команды разделяется на следующие этапы:

1)  Выборка команды и формирование адреса следующей команды и считывание её в буфер.

2)  Дешифрация команды.

3)  Вычисление адресов операндов.

4)  Выборка операндов.

5)  Использование необходимых операндов и размещение результата.


1-я команда

ВК

ДК

ВАО

ВО

¯

М

ИК

¯

М

2-я команда

ВК

ДК

ВАО

ВО

¯

М

ИК

¯

М

3-я команда

ВО

¯

М

ИК

*

4-я команда

ВК

ДК

ВАО

ВО

ИК

Выноска 2 (без границы): Возможно 2 вариантаЭто пятиступенчатый конвейер, т. е. сразу 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 – программным способом.

Конвейерная обработка в вычислителях

В RISC процессорах большинство команд представляет собой RG®RC и их машинный цикл состоит из двух фаз: I – фазы выборки; Е – фазы выполнения.

В этом случае конвейер получается двухфазным и операции не равны по своей длине. Поэтому фазу исполнения подразделяют как бы на 2 фазы: именно фаза исполнения (Е) и фаза обращения к памяти (D). D – подразумевает чтение информации или размещение информации в памяти, т. е. конвейер приобретает в этом случае следующий вид.

М®А

Загрузка

I

E

D

М®В

Загрузка

I

E

D

А+В=С

Сложить

I

E

С®М

Запомнить

I

E

D

Х

Ветвление

I

E

NOP

I

E

I – выборка команды

E – исполнение команды

D – обращение к памяти

На этом рисунке совмещаются 2 операции – это исполнение и выборка. Вычисление результата в двух различных командах выполняется одновременно, однако размещение результата не может быть совмещено во времени в двух командах, т. к. обращение…

Снижение быстродействия вызвано следующим:

-  использование однопортовых ОЗУ;

-  использование команды NOP после ветвления для того, чтобы синхронизировать работу ВС.

В некоторых структурах используются двухпортовые ОЗУ, тогда

М®А

Загрузка

I

E

D

М®В

Загрузка

I

E

D

А+В=С

Сложить

I

E

С®М

Запомнить

I

E

D

Х

Ветвление

I

E

NOP

I

E

Отсутствуют провалы (дыры) за счёт команды NOP

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6