Архитектура Intel 64

Блок управления

Блок предсказания переходов

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

Предсказание перехода выполняется на основании анализа выполнявшихся ранее команд переходов, поэтому в блоке предсказания переходов имеется специальная буферная память адресов переходов – BTB (Branch Target Buffer), которая хранит данные о последних переходах. При предсказании переходов используются также сведения и микрокомандах, хранящихся кэш-памяти ETC.

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

Блок управления процессором содержит узел управления процессором и узел обработки прерываний.

Узел управления процессором координирует взаимодействие блоков процессора.

Узел обработки прерываний процессора прекращает выполнение команд текущей программы, и передает управление операционной системе, которая вызывает процедуру, обрабатывающую данное прерывание.

Архитектура Intel 64 добавляет к режимам функционирования архитектуры IA-32 режим IA-32e. Этот режим, в свою очередь, обеспечивает следующие два режима:

· режим совместимости;

· 64-битовый режим.

Режим совместимости позволяет выполнять без перекомпиляции 16-битовые и 32-битовые прикладные задачи, т.е. прикладные задачи, использующие 16-битовые и 32-битовые адреса и размеры операндов, в 64-битовой операционной системе. Поскольку размер адреса равен 32, доступными для задач являются только 4 Гбайта линейно адресуемого пространства памяти.

В целом режим совместимости похож на защищенный режим IA-32, однако прикладные задачи виртуального режима 8086 и задачи, использующие аппаратное управление, не могут быть выполнены в этом режиме.

64-битовый режим предназначен для выполнения 64-битовых прикладных задач в 64-битовой операционной системе.

Для функционирования в этом режиме разрядность регистров общего назначения и некоторых системных регистров увеличена до 64. Количество регистров общего назначения и регистров XMM увеличено до 16.

В принципе, максимальный размер линейно адресуемой памяти в 64-битовом режиме равен 264, однако реально доступный для прикладных задач размер памяти в Intel 64 равен 240, а для доступа к памяти используется режим плоского линейного адресного пространства (без сегментации).