- •Абсолютные способы формирования исполнительного адреса операндов
- •Встраиваемые и промышленные компьютеры
- •В чем суть mmx-технологии и потоковых simd-расширений?
- •В чем суть матричного и векторно-конвейерного способов организации simd-архитектуры
- •Иерархическая структура памяти компьютера
- •Как определяется энергоэффективность процессора?
- •Как осуществляется декодирование команд x86 в процессоре Intel Nehalem?
- •Как осуществляется декодирование команд x86 в ядре amd k10?
- •Какие новые возможности появились у процессора с введением расширения команд sse-2, sse-3?
- •Какими преимуществами обладают блейд-серверы?
- •Какими характеристиками должен обладать пк?
- •Классификация mimd-систем по способу взаимодействия процессоров
- •Классификация архитектуры sisd с краткой характеристикой классов
- •Классификация интерфейсов
- •Классификация ноутбуков
- •Классификация методов построения центрального устройства управления процессора
- •Классификация микро-эвм с краткой характеристикой классов
- •Классификация пк по способу использования
- •Классификация серверов с пояснениями
- •Классификация, состав, платформы, производители карманных пк
- •Классификация способов организации simd-архитектуры с пояснениями
- •Конвейерная технология выполнения команд
- •Концепция виртуальной памяти
- •Косвенная адресация операндов
- •Логическая организация центрального процессора эвм
- •Методы обновления строк в основной и кэш-памяти
- •Методы повышения пропускной способности оперативной памяти (организация памяти на ddr sdram)
- •Методы повышения пропускной способности оперативной памяти (расслоение обращений)
- •Методы преобразования виртуального адреса в физический при странично-сегментном распределении памяти с использованием tlb
- •Методы замещения строк в кэш-памяти
- •Методы ускорения процессов обмена информацией между оп и внешними запоминающими устройствами
- •Механизм преобразования виртуального адреса в физический при страничной организации памяти
- •Механизм стековой адресации по способу lifo
- •Модульная структура процессора Intel Nehalem
- •Обобщенная структура эвм и основные направления её развития
- •Обобщенный формат команд x86
- •Общие принципы организации оперативной памяти компьютера
- •Объяснить суть процедуры переименования регистров в современных процессорах
- •Определить назначение, количество, принцип действия исполнительных устройств процессора Intel Nehalem
- •Определить назначение, количество, принцип действия исполнительных устройств ядра amd k10
- •Определить назначение, структуру, количество регистров mmx-технологии и расширений sse, sse2
- •Определить назначение, структуру, количество основных функциональных регистров ia-32
- •Определить назначение, структуру, количество регистров процессора обработки чисел с плавающей точкой ia-32 (x87)
- •Регистры ммх-технологии
- •Организация многоуровневой кэш-памяти
- •Основные отличительные черты epic-концепции
- •Основные характерные черты cisc-архитектуры
- •Основные характерные черты risc-архитектуры
- •Основные характерные черты vliw-архитектуры
- •Основные характерные черты суперскалярной обработки
- •Особенности микроархитектуры Intel Core
- •Особенности микроархитектуры Intel Sandy Bridge
- •Особенности микроархитектуры процессоров Intel Nehalem
- •Особенности архитектуры процессоров x86-64 (amd64, Intel64)
- •Особенности процессоров семейства Intel Westmere
- •Особенности процессорного ядра amd k10
- •Особенности системы команд в ia-64
- •Охарактеризуйте все виды производительности компьютера
- •Перечислить основные требования, которые учитываются при проектировании серверов
- •Принцип работы кэш-памяти с полностью ассоциативным распределением
- •Принцип работы кэш-памяти с частично ассоциативным распределением
- •Программно-управляемая передача данных в компьютере
- •Программно-управляемый приоритет прерывающих программ
- •Прямой доступ к памяти в компьютере
- •Показать развитие и классификацию однопроцессорных архитектур
- •Почему появились многоядерные структуры процессоров и технологии многопоточности?
- •Развитие cisc-системы команд x86 (по годам)
- •Распределение оперативной памяти динамическими разделами
- •Распределение оперативной памяти перемещаемыми разделами
- •Распределение оперативной памяти фиксированными разделами
- •Расширение системы команд aes-ni, avx
- •Реализация адресации «Базирование с индексированием»
- •Реализация адресации операндов «Базирование способом совмещения составляющих исполнительного адреса Аи»
- •Реализация адресации операндов «Базирование способом суммирования»
- •Реализация индексной адресации операндов
- •Регистровые структуры процессоров ia-64
- •Регистровые структуры процессоров x86-64 архитектуры (amd64, Intel64)
- •Сегментное распределение виртуальной памяти
- •Сильносвязанные и слабосвязанные многопроцессорные системы
- •Системная организация эвм на базе чипсетов Intel
- •Страничное распределение виртуальной памяти
- •Стратегия развития процессоров Intel
- •Странично-сегментное распределение памяти
- •Структура кэш-памяти с прямым распределением данных
- •Теги и дескрипторы
- •Типовая структура кэш-памяти
- •Типы данных ia-32 (без mmx и sse)
- •Типы данных ia-64
- •Типы данных mmx-технологии
- •Типы данных sse, sse-2 расширений
- •Форматы команд risc-процессора
- •Формат команд в ia-64, структура пакета инструкций
- •Функции центрального устройства управления процессором
- •Функциональные возможности, назначение, платформы рабочих станций
- •Функциональные возможности, назначение, современные разработки ультра-мобильных и планшетных пк
- •Функциональные возможности, области применения, основные производители мэйнфреймов
- •Функциональные возможности, пути развития, современные разработки супер-эвм
- •Характеристики интерфейсов
- •Характеристики системы прерывания
- •Характерные черты современных универсальных микропроцессоров
- •Центральное устройство управления микропрограммного типа
Как осуществляется декодирование команд x86 в процессоре Intel Nehalem?
Сначала х86 инструкции выбираются (Fletch) из кэш-памяти команд. Если в потоке команд оказывается команда условного перехода (ветвление программы), то включается механизм предсказания ветвления, который формирует адрес следующей выбираемой команды до того, как будет определено условие выполнения перехода. Основной частью блока предсказания ветвлений является ассоциативная память, называемая буфером адресов ветвлений ВТВ (Branch Target Buffer), в котором хранятся адреса ранее выполненных переходов. Кроме того, ВТВ содержит биты, хранящие предысторию ветвления, которые указывают, выполнялся ли переход при предыдущих выборках данной команды. При поступлении очередной команды условного перехода указанный в ней адрес сравнивается с содержимым ВТВ. Если этот адрес не содержится в ВТВ, то есть ранее не производились переходы по данному адресу, то предсказывается отсутствие ветвления. В этом случае продолжается выборка и декодирование команд, следующих за командой перехода. При совпадении указанного в команде адреса перехода с каким-либо из адресов, хранящихся в ВТВ, производится анализ предыстории. В процессе анализа определяется чаще всего реализуемое направление ветвления, а также выявляются чередующиеся переходы. Если предсказывается выполнение ветвления, то выбирается и загружается в конвейер команда, размещенная по предсказанному адресу.
В дополнение к уже имеющемуся в Intel Core блоку предсказания переходов был добавлен в Nehalem ещё один «предсказатель» второго уровня. Он работает медленнее, чем первый, но зато благодаря более вместительному буферу, накапливающему статистику переходов, обладает лучшей глубиной анализа. Далее разделенные х86 инструкции (Pre Decode) на простые и сложные организуются в виде очередей (Instruction Queues) на входах четырех декодеров. Декодеры преобразуют х86 команды в микрокоманды, под управлением которых в процессоре выполняются элементарные операции (микрооперации). Как в Intel Core, три декодера используются для обработки простых инструкций, один – для сложных. Каждая простая х86 инструкция преобразуется в 1–2 микрокоманды, а для сложной инструкции из памяти микрокода (u Code ROM) выбирается последовательность микрокоманд (микропрограмма), которая содержит более двух микрокоманд (технология micro-ops fusion). Используя технологию macro fusion, четыре декодера могут обработать одновременно пять х86 команд, преобразуя их в четыре микрокоманды.
В Nehalem увеличилось число пар x86 команд, декодируемых в рамках этой технологии «одним махом». Кроме того, технология macro fusion стала работать и в 64-битном режиме, в то время как в процессорах семейства Core 2 она могла активироваться лишь при работе процессора с 32-битным кодом.
Как осуществляется декодирование команд x86 в ядре amd k10?
Как большинство современных х86-процессоров, имеющих внутреннюю RISC-архитектуру, в процессоре К10 внешние х86-команды декодируются во внутренние RISC-инструкции, для чего используется декодер команд. Процесс декодирования состоит из двух этапов. На первом этапе выбранные из кэша L1 блоки инструкций длиной 32 байта (256 бит) помещаются в специальный буфер преддекодирования (Predecode/Pick Buffer), где происходит выделение инструкций из блоков, определение их типов и отсылка в соответствующие каналы декодера. Декодер транслирует х86-инструкции в простейшие машинные команды (микрооперации), называемые micro-ops (µOp). Сами х86-команды могут быть переменной длины, а вот длина микроопераций уже фиксированная. Инструкции х86 разделяются на простые и сложные. Простые инструкции при декодировании представляются с помощью одной-двух микроопераций, а сложные команды – тремя и более микрооперациями. Простые инструкции отсылаются в аппаратный декодер, построенный на логических схемах и называемый Direct Path, а сложные – в микропрограммный декодер, называемый Vector Path. Он содержит память микрокода, в которой хранятся последовательности микроопераций.
Аппаратный декодер Direct Path является трехканальным и может декодировать за один такт: три простые инструкции, если каждая из них транслируется в одну микрооперацию; либо одну простую инструкцию, транслируемую в две микрооперации, и одну простую инструкцию, транслируемую в одну микрооперацию; либо две простые инструкции за два такта, если каждая инструкция транслируется в две микрооперации (полторы инструкции за такт). Таким образом, за каждый такт аппаратный декодер выдает три микрооперации.
Микропрограммный декодер Vector Path также способен выдавать по три микрооперации за такт при декодировании сложных инструкций. При этом сложные инструкции не могут декодироваться одновременно с простыми, т. е. при работе трехканального аппаратного декодера микропрограммный декодер не используется, а при декодировании сложных инструкций, наоборот, бездействует аппаратный декодер.
Микрооперации, полученные в результате декодирования инструкций в декодерах Vector Path и Direct Path поступают в буфер Pack Buffer, где они объединяются в группы по три микрооперации. В том случае, когда за один такт в буфер поступает не три, а одна или две микрооперации (в результате задержек с выбором инструкций), группы заполняются пустыми микрооперациями, но так, чтобы в каждой группе было ровно три микрооперации. Далее группы микроинструкций отправляются на исполнение.