Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка.doc
Скачиваний:
617
Добавлен:
22.05.2015
Размер:
2.56 Mб
Скачать

10.5.2 Ядро процессора

Структурная блок-схема одного ядра процессора на базе архитектуры AMD K10 показана на рис. 10.12.

Изучая структурную схему нового ядра и сравнивая ее со схемой легендарного К8, можно заметить, что общих черт у них больше, чем различий. Собственно, архитектура К10 наследует черты архитектуры К8, являясь ее логическим развитием. Используется все тот же 12-ступенчатый конвейер, как и в архитектуре К8.

Однако, несмотря на внешнее сходство, новое ядро процессора все же претерпело существенные изменения. Итак, расскажем обо всем по порядку.

10.5.3 Предвыборка данных и инструкций

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

В процессорах с архитектурой К8 имеются два блока предвыборки (Fetch Unit): один для предвыборки данных, а другой для предвыборки инструкций. Блок предвыборки данных производит предвыборку в кэш L2.

В микроархитектуре AMD K10 предвыборка данных осуществляется непосредственно в кэш L1, что, по утверждению представителей компании AMD, способствует повышению производительности, несмотря на вероятность засорения кэша L1 ненужными данными. Кроме того, в блоках предвыборки процессоров с микроархитектурой К10 реализован механизм адаптивной предвыборки данных, позволяющий динамически изменять глубину предвыборки, что дает возможность избежать засорения кэша L1 ненужными данными. Ну и последнее новшество, связанное с предвыборкой данных и инструкций, – это наличие нового блока предвыборки, расположенного в контроллере памяти. Этот блок предвыборки анализирует запросы к памяти, предсказывает, какие данные понадобятся процессору, и извлекает их в собственный буфер, не занимая кэш процессора.

10.5.4 Выборка из кэша

В процессорах на базе архитектуры К8 инструкции из кэша L1 загружаются блоками длиной 16 байт (128 бит), а в архитектуре К10 длина блока увеличена вдвое, то есть составляет 32 байта (256 бит). При выборке 16-байтного блока инструкции за такт процессоры на базе архитектуры К8 могут выбирать и соответственно отправлять на декодирование до четырех инструкций средней длиной 4 байта.

В принципе, нельзя утверждать, что использование увеличенного вдвое размера блока выборки инструкций в архитектуре AMD K10 позволяет выбирать за такт вдвое больше инструкций. Просто в архитектуре AMD K8 длина блока выборки инструкций была согласована с возможностями декодера. В архитектуре AMD K10 возможности декодера изменились, в результате чего потребовалось изменить и размер блока выборки, чтобы темп выборки инструкций был сбалансирован со скоростью работы декодера.

10.5.5 Предсказание переходов и ветвлений

Предсказание переходов в процессорах на базе архитектуры К8 осуществляется по адаптивному алгоритму на основе анализа истории восьми предыдущих переходов.

Основным недостатком механизма предсказания переходов в архитектуре К8 было отсутствие предсказания косвенных переходов с динамически чередующимися адресами, то есть переходов, которые производятся по указателю, динамически вычисляемому при выполнении кода программы.

В архитектуре AMD K10 предсказание переходов существенно улучшено. Во-первых, появился механизм предсказания косвенных переходов. Во-вторых, оно выполняется на основе анализа 12 предыдущих переходов, что повышает точность предсказания. В-третьих, вдвое (с 12 до 24 элементов) увеличена глубина стека возврата.