Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы инф_мен (Костров).doc
Скачиваний:
19
Добавлен:
08.09.2019
Размер:
4.42 Mб
Скачать

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

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

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

Еще один способ уменьшить время прохождения битов заключается в сокращении проходимого ими пути. Для этого следует уменьшить размеры транзисторов, а как следствие, расстояние между ними. Такой подход позволил Intel и AMD достичь 600 МГц; они собирались изготовить 0,18 микронные процессоры взамен более «громоздких» 0,25-х.

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

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

…делать поменьше операций

Улучшить технологию производства – легко сказать, да трудно сделать. Это стоит чертову уйму денег. Такое называют «методом грубой силы». Неужели нет более интеллектуального подхода? Ведь в конце концов, инженеры из Alpha просто смеются над 500 МГц на 0,25 мкм процессоре; они достигли 600 МГц на 0,35!

Давайте-ка, попробуем модернизировать наш процессор, иначе он сможет работать только на 10 МГц, и то, если повезет. (Найдете такой в местном магазине, не в коем случае не берите!).

Можно сократить объем работы производимой в течении одного цикла. Вместо 7 операций за один цикл, будем делать один. Тогда, очевидно, можно будет сократить и продолжительность цикла.

Звучит очень странно. Ведь в таком случае, та же процедура займет в 7 раз дольше времени! Ну, разве это не полная чепуха? А вот и нет, вот тут то мы и сталкиваемся с конвейерами.

Использование конвейера позволяет всем устройствам процессора выполнять свою работу одновременно. Пусть, например, в нашем процессоре есть 4 устройства: Fetcher – ищет  следующую инструкцию. Декодер – выясняет смысл инструкции. АЛУ – выполняет инструкции. Retire блок – возвращает результаты в память.

Итак, если в нашей схеме используются конвейеры, процесс будет выглядеть так: fetcher получает инструкцию 4, decoder декодирует инструкцию 3, АЛУ выполняет инструкцию 2, а результат инструкции 1 отправляется назад в память. И таким образом, в конце каждого такта мы имеем выполненную инструкцию.

Такт

Fetcher

Decoder

АЛУ

Retire

1

инструкция 1

2

инструкция 2

инструкция 1

3

инструкция 3

инструкция 2

инструкция 1

4

инструкция 4

инструкция 3

инструкция 2

инструкция 1

5

инструкция 5

инструкция 4

инструкция 3

инструкция 2

6

инструкция 6

инструкция 5

инструкция 4

инструкция 3

7

инструкция 6

инструкция 6

инструкция 5

инструкция 4

8

инструкция 7

инструкция 7

инструкция 6

инструкция 5

9

инструкция 8

инструкция 8

инструкция 7

инструкция 6

Суперконвейеризация, или разбиение конвейера на большое число стадий, позволяет делать за один цикл меньше, притом, что снаружи все выглядит так, что процессор делает все тот же объем работы за один цикл. Напомним, что это позволяет очень сильно увеличить частоту.