Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ФЭВМ (основная часть).doc
Скачиваний:
16
Добавлен:
22.04.2019
Размер:
8.11 Mб
Скачать

2) Сократить время вычислений.

3) Делать как можно меньше операций в течении одного цикла (конвейер команд).

4) Оптимизация работы с памятью (кэш-память)

6.1.5.1…Чтобы шли быстрее

Заставить поток битов ходить в процессоре быстрее непросто. Во-первых, нужно, насколько это возможно, уменьшить число препятствий на пути электронов. Это зависит от технологии производства, и температуры кристалла. Чем лучше технология, тем лучше конечный продукт.

А температура? Она то тут причем? А притом, что атомы в кристаллической решетке находятся в тепловом движении, и амплитуда его пропорциональна температуре. А чем больше амплитуда, тем меньше шансов у электрона проскочить мимо атома. Таким образом, чем ниже температура, тем более беспрепятственно движутся электроны. Именно поэтому охлажденные процессоры работают быстрее.

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

6.1.5.2…Сократить время вычислений

Машины хорошо умеют делать параллельно несколько вещей. Поэтому какой-нибудь навороченный блок для сложения сможет складывать быстрее, чем более простая конструкция, сокращая, таким образом, DALU. Впрочем, здесь не все так просто: сложное устройство, конечно, считает быстро, но зато оно и больше.

6.1.5.3Конвейер команд

Как известно, сущность работы процессора заключается в выполнении програм­мы, хранящейся в памяти. Программа представляет со­бой набор команд (инструк­ций) и данных. Считывая эти команды, процессор выпол­няет определенные действия. Проблема в том, что процесс обработки команды не мо­жет быть выполнен за одну стадию.

В «ранних» процессорах обработка следующей коман­ды не могла быть начата до завершения всех этапов обра­ботки над предыдущей. Это существенно тормозило работу процессора – на каждую инструкцию уходило более 10 тактов процессорного ядра. Инженеры не могли с этим мириться, поэтому обработку команд они поставили, в бук­вальном смысле, на конвейер – как только команда прохо­дила один из этапов, сразу же на ее место становилась сле­дующая, чтобы пройти ана­логичный этап, и т.д.

Первые конвейеры, обла­дателями которых стали 486-е компьютеры, были пя­тиступенчатыми (рис. 6.3.).

Рис. 6.3. Конвейер из 5 стадий

В современ­ных процессорах этапы стандартного пятиступенчатого конвейера делят еще на бо­лее мелкие части (например, у Pentium II конвейер имеет 10 ступеней, у Pentium 4 – 20). С увеличением числа сту­пеней в конвейере на каж­дый шаг приходится меньше работы, а, следовательно, и меньше аппаратной логики. Упрощение логики, в свою очередь, позволяет повысить рабочую частоту процессора. Именно этот факт позволил Pentium 4 достичь таких вы­соких рабочих частот. Наличие более 5 ступеней в конвейере носит название «суперконвейеризация».

Так что же мешает увеличивать число стадий неограниченно?

Сделать то можно, но дело в том, что это может вызвать некоторое подобие пробки в процессоре. Разберемся в этом поподробнее.

Представим себе, что инструкция 1 требует вычисления А=С*2, а инструкция 2 – В=А+1. Если на вычисление А уходит 20 тактов, то за выполнение инструкции 2 процессор возьмется лишь через 29 тактов! Ясно что, чем больше стадий у конвейера, тем большая «пробка» может образоваться.

Начиная с 5-го поколения, в процессорах появился двои ной конвейер – U (основной) и V (дополнительный). Ос­новной конвейер выполняет все команды, а дополнительный – ряд наиболее распро­страненных инструкций (рис. 6.4).

Рис. 6.4. Двойной конвейер

При этом становится возможным выполнять, в среднем, более одной команды за такт. Про­цессор, имеющий в своем составе два и более конвейе­ра, называется суперскаляр­ным. Переход к четырем конвейерам возможен, но это потребовало бы создания гро­моздкого аппаратного обеспечения, поэтому используется дру­гой подход. Основная идея – один конвейер с большим количеством функцио­нальных блоков (рис. 6.5). Стадия 3 выпускает команды значительно быстрее, чем стадия 4 способна их выполнять. Поэтому процессор вызывает команду из памяти и помещает в один функциональных блоков стадии 4 для параллельного выполнения.

Рис. 6.5. Суперскалярный процессор с пятью функциональными блоками

Введение нескольких конвейеров значительно по­вышает производительность процессора без увеличения частоты.