Средства разработки приложений


Обзор методов оптимизации кода - часть 3


чтобы темп выдачи команд составлял одну команду на такт.

Пусть исполнение команды состоит из 3-х этапов

по 1 процессорному такту на каждый:

1) чтение команды из памяти (Ч);

2) декодирование (Д);

3) исполнение (И).

Последовательное исполнение команд

Этапы

Ч1

Д1

И1

Ч2

Д2

И2

Ч3

Д3

И3

Такты ®

1

2

3

4

5

6

7

8

9

Конвейерное исполнение команд

Устройство чтения:

Ч1

Ч2

Ч3

Ч4

Ч5

Ч6

Ч7

   

Устройство декодирования:

 

Д1

Д2

Д3

Д4

Д5

Д6

Д7

 

Устройство исполнения:

   

И1

И2

И3

И4

И5

И6

И7

Такты ®

1

2

3

4

5

6

7

8

9

Конвейерное суперскалярное исполнение команд

Устройство чтения 1:

Ч1

Ч2

Ч3

Ч4

Ч5

Ч6

Ч7

   

Устройство декодирования 1:

 

Д1

Д2

Д3

Д4

Д5

Д6

Д7

 

Устройство исполнения 1:

   

И1

И2

И3

И4

И5

И6

И7

Устройство чтения 2:

Ч1

Ч2

Ч3

Ч4

Ч5

Ч6

Ч7

   

Устройство декодирования 2:

 

Д1

Д2

Д3

Д4

Д5

Д6

Д7

 

Устройство исполнения 2:

   

И1

И2

И3

И4

И5

И6

И7

Такты ®

1

2

3

4

5

6

7

8

9

Рис. 1. Последовательное и параллельное исполнение команд

Естественным развитием средств конвейерной обработки явились процессоры с множественной выдачей команд на исполнение (multiple issue processors) - суперскалярные и VLIW-процессоры. Суперскалярный процессор исполняет обычный последовательный код, но может выбирать в нем и выдавать на выполнение одновременно несколько команд - не более n, где n - темп выдачи команд данного процессора. Различаются суперскалярные процессоры с упорядоченной и неупорядоченной выдачей команд на исполнение. Процессор первого типа выдает команды на исполнение в точности в том порядке, в котором они закодированы в программе. На каждом такте на исполнение выдается от 1 до n очередных команд с учетом возможности их параллельного исполнения.


- Начало -  - Назад -  - Вперед -