18 Август 2007

Часть 5. Предварительная выборка команд и предсказание переходов

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

» Read the rest of this entry ...

17 Август 2007

Часть 4. Предварительная выборка команд и предсказание переходов

На каждом этапе используются специальные приемы повышения производительности.

» Read the rest of this entry ...

14 Август 2007

Часть 3. Предварительная выборка команд и предсказание переходов

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

» Read the rest of this entry ...

11 Август 2007

Часть 2. Предварительная выборка команд и предсказание переходов

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

» Read the rest of this entry ...

5 Август 2007

Часть 1. Предварительная выборка команд и предсказание переходов

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

» Read the rest of this entry ...

1 Август 2007

Часть 2. Структурный параллелизм микропроцессоров с разнесенной архитектурой

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

» Read the rest of this entry ...

27 Июль 2007

Часть 1. Структурный параллелизм микропроцессоров с разнесенной архитектурой

Стремление использовать присущий большинству программ естественный параллелизм вычисления целочисленных адресных выражений и собственно обработки данных в формате с плавающей точкой привело к появлению разнесенных архитектур (decoupled architecture).

» Read the rest of this entry ...

26 Июль 2007

Часть 4. Зависимости между командами, препятствующие их параллельному исполнению

Лишние зависимости по данным появляются в результате "записи после чтения" (WAR) и "записи после записи" (WAW). Зависимость WAR состоит в том, что команда должна записать новое значение в ячейку памяти или регистр, из которых должно быть произведено чтение.

» Read the rest of this entry ...

21 Июль 2007

Часть 3. Зависимости между командами, препятствующие их параллельному исполнению

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

» Read the rest of this entry ...

18 Июль 2007

Часть 2. Зависимости между командами, препятствующие их параллельному исполнению

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

» Read the rest of this entry ...

11 Июль 2007

Часть 1. Зависимости между командами, препятствующие их параллельному исполнению

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

» Read the rest of this entry ...

6 Июль 2007

Суперскалярные процессоры и процессоры с длинным командным словом

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

» Read the rest of this entry ...

4 Июль 2007

Подходы к использованию ресурса транзисторов в микропроцессорах

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

» Read the rest of this entry ...

2 Июль 2007

Часть 5. Классификация архитектур микропроцессоров

атем на основе "пионерских" разработок компаний NexGen и AMD, позднее подхваченных компанией Intel, была реализована успешная попытка решения проблемы повышения производительности в рамках архитектуры I х86.

» Read the rest of this entry ...

1 Июль 2007

Часть 4. Классификация архитектур микропроцессоров

Развитие микропроцессоров происходит при постоянном стремлении сохранения преемственности программного обеспечения (ПО) и повышения производительности за счет совершенствования архитектуры и увеличения тактовой частоты.

» Read the rest of this entry ...

29 Июнь 2007

Часть 3. Классификация архитектур микропроцессоров

Процессоры первого класса имеют команды обработки типа "регистр <- регистр, регистр" и команды сохранения (store) и зафузки (load) типа "память <-регистр" и "регистр <— память" соответственно. Функциональные преобразования могут выполняться только над содержимым регистров, а результат помещается также в регистр.

» Read the rest of this entry ...

26 Июнь 2007

Часть 2. Классификация архитектур микропроцессоров

Другим обстоятельством, фактически приведшим к появлению RISC-процессоров, было развитие архитектуры конвейерных процессоров типа Cray. В этих процессорах используются отдельные наборы команд для работы с памятью и отдельные наборы команд для преобразования информации в регистрах процессора. Каждая такая команда единообразно разбивается на небольшое количество этапов с одинаковым временем исполнения (выборка команды, дешифрация команды, исполнение, запись результата), что позволяет построить эффективный конвейер процессора, способный каждый такт выдавать результат исполнения очередной команды.
Однако конвеерность исполнения команд породила проблемы, связанные с зависимостями по данным и управлению между последовательно запускаемыми в конвейер командами. Например, если очередная команда использует результат предыдущей, то се исполнение невозможно в течение нескольких тактов, необходимых для получения этого результата. Похожие проблемы возникают при исполнении команд перехода по условию, когда данные, по которым производится переход, к моменту дешифрации команды условного перехода еще не готовы.
Эти проблемы решаются либо компилятором, устанавливающим очерел-ность запуска команд в конвейере и вставляющим команды "нет операции" при невозможности запуска очередной команды, либо специальной аппаратурой процессора, отслеживающей зависимости между командами и устраняющей конфликты.
Процессоры могут быть разбиты на два класса: RISC-процессоры компьютеров с сокращенным набором команд (Reduced Instruction Set Computer) и CISC-процессоры со сложным набором команд (Complex Instruction Set Computer).

24 Июнь 2007

Часть 1. Классификация архитектур микропроцессоров

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

» Read the rest of this entry ...