Современные высокопроизводительные компьютеры
В качестве примера рассмотрим неконвейерную машину с пятью этапами выполнения операций, которые имеют длительность 50, 50, 60, 50 и 50 нс соответственно (рис. 5.5). Пусть накладные расходы на организацию конвейерной обработки составляют 5 нс. Тогда среднее время выполнения команды в неконвейерной машине будет равно 260 нс. Если же используется конвейерная организация, длительность такта будет равна длительности самого медленного этапа обработки плюс накладные расходы, т.е. 65 нс. Это время соответствует среднему времени выполнения команды в конвейере. Таким образом, ускорение, полученное в результате конвейеризации, будет равно: Среднее время выполнения команды в неконвейерном режиме
Среднее время выполнения команды в неконвейерном режиме = 260
65 = 4
Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной, а скорость подачи новых команд и операндов соответствует максимальной производительности конвейера. Если произойдет задержка, то параллельно будет выполняться меньше операций и суммарная производительность снизится. Такие задержки могут возникать в результате возникновения конфликтных ситуаций. В следующих разделах будут рассмотрены различные типы конфликтов, возникающие при выполнении команд в конвейере, и способы их разрешения.
Рис. 5.3. Представление о работе конвейера Номер команды Номер такта
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
Рис. 5.4. Диаграмма работы простейшего конвейера
Рис. 5.5. Эффект конвейеризации при выполнении 3-х команд - четырехкратное ускорение При реализации конвейерной обработки возникают ситуации, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее такте.
|