Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Регистры отладки и тестирования. 1 страница



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

Регистры общего назначения

Восемь 32-разрядных регистров (EAX, ECX, EDX, EBS, EBP, ESP, ESI, EDI) предназначены для хранения данных и адресов. Они поддерживают работу с данными разрядностью 1, 8, 16 и 32 бита, битовыми полями длиной от 1 до 32 бит и адресами размером 16 и 32 бита. Младшие 16 разрядов этих регистров (рис.3.2) доступны отдельно при использовании соответствующего имени, например регистр ЕАХ (имя АХ для 16 разрядов).

При операциях с байтами можно отдельно обращаться к младшему байту (разряды 0–7) и старшему байту (8–15) по именам AL и AH. Доступ к отдельным байтам обеспечивает дополнительную гибкость при операциях с данными.

Рис. 3.2. Структура регистра общего назначения ЕАХ

Регистры сегментов и дескрипторы сегментов

Шесть 16-разрядных сегментных регистров (CS, SS, DS, ES, FS, GS) содержат значения селекторов сегментов, указывающих на текущие адресуемые сегменты памяти. С каждым из них связан программно-недоступный регистр дескриптора сегмента (см. рис. 3.3).

В защищенном режиме каждый сегмент может иметь размер от 1 байта до 4 Гбайт, в режиме реальных адресов максимальный размер сегмента составляет 64 Кбайта.

Селектор в CS обеспечивает обращение к текущему сегменту команд, селектор в SS – к текущему сегменту стека, селекторы в DS, ES, FS, GS – к текущим сегментам данных. Каждый регистр дескриптора содержит базовый адрес сегмента, 32-разрядный размер сегмента и другие необходимые атрибуты.

 

Регистры сегментов Регистры дескрипторов
  15 0          
  Селектор CS   Базовый адрес Размер сегмента Другие атрибуты
  Селектор SS                
  Селектор DS                
  Селектор ES                
  Селектор FS                
  Селектор GS                

Рис. 3.3. Регистры сегментов и соответствующие регистры дескрипторов

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

 

Указатель команд

Указатель команд (рис. 3.4) представляет собой 32-разрядный регистр с именем EIP, содержимое которого используется в качестве смещения при определении адреса следующей выполняемой команды. Смещение задается относительно базового адреса сегмента команд CS. Младшие 16 бит (0–15) содержат 16-разрядный указатель команд с именем IP, который используется при 16-разрядной адресации.

Рис. 3.4. Структура регистра указателя команд

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

 

Регистр флагов

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

Регистры процессора обработки чисел с плавающей точкой

Набор регистров, входящих в блок FPU, изображен на рис. 3.5.

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

 

Регистры данных Регистр тегов

  Знак Порядок Мантисса    

79 78 64 63 0 1 0

ST0     MM0   Тег(0)
ST1     MM1   Тег(1)
ST2     MM2   Тег(2)
ST3     MM3   Тег(3)
ST4     MM4   Тег(4)
ST5     MM5   Тег(5)
ST6     MM6   Тег(6)
ST7     MM7   Тег(7)

 

15 0   47 0
Регистр управления   Указатель команд
Регистр состояния   Указатель данных

Рис. 3.5. Регистры блока FPU

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

Тег определяет, является ли регистр пустым (незаполненным) – код 11 или в него введено конечное число – 00 (достоверное значение), или нуль – 01, неопределенное значение (бесконечность) – 10 (нет числа и неподдерживаемый формат). Слово тегов позволяет оптимизировать функционирование FPU посредством идентификации пустых и непустых регистров данных, проверить содержимое регистра без сложного декодирования хранящихся в нем данных.

Регистры ММХ-технологии

При реализации ММХ-команд регистры данных FPU используются как 64-разрядные регистры ММ0–ММ7 (см. рис. 3.5), где могут храниться несколько целочисленных операндов (восемь 8-разрядных, четыре 16-разрядных, два 32-разрядных или один 64-разрядный), над которыми одновременно выполняется поступившая в процессор команда.

Регистры SSE расширений

Убран абзац, убран рисунок
Потоковые команды расширений SSE используют восемь 128-разрядных регистров ХММ0–ХММ7, в которых могут храниться несколько вещественных или целочисленных операндов.

Системные регистры

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

Набор системных регистров включает регистры управления, регистры системных адресов и сегментов.

Регистры управления 32-разрядные, служат для фиксации общего состояния процессора. Эти регистры вместе с регистрами системных адресов хранят информацию о состоянии процессора, которое затрагивает все задачи.

Регистры отладки и тестирования

Набор программно-доступных регистров поддерживает отладку программ и тестирования внутренних блоков процессора. Встроенный алгоритм самотестирования (BIST) осуществляет поиск ошибки в микрокоде и в больших логических матрицах, а также тестирование кэш-памяти команд и данных, буферов ассоциативной трансляции (TLB) и устройств постоянной памяти. Внутренние счетчики контролируют работу процессора и проводят подсчет событий. Введена новая функция – мониторинг термического состояния системной платы.

Переименование регистров

В современных процессорах используются блоки регистров замещения (регистровые файлы) для целочисленных, вещественных и векторных данных. Для любого указанного в команде логического регистра (программно можно обращаться в х86 только к 8-ми регистрам общего назначения GPR, 8-ми регистрам с плавающей точкой ST или 8-ми ММХ / ХММ-регистрам) выделяется один из физических регистров соответствующего блока регистров замещения, содержащего например 128 регистров. Эта процедура (переименование регистров) позволяет увеличить количество используемых регистров процессора, а также позволяет выполнять команды, в которых задействованы одни и те же логические регистры, одновременно или с изменением их последовательности.

3.3.2. Регистровые структуры процессоров AMD64 (Intel64)

В процессорах x86-64 (AMD64), Intel64 архитектур (рис. 3.6) существующие в х86 регистры общего назначения (GPR) расширены с 32 до 64 бит (RAX, RBX, RCX, RDX, RBP, RSP, RSI, RDI) и к ним добавлены еще 8 новых 64-разрядных регистров (R8–R15). Также 8 новых 128-ми битных регистров (XMM8–XMM15) добавлено в блок SSE, что обеспечивает поддержку SSE2.

Рис. 3.6. Регистровые структуры процессоров AMD64 (Intel64)

В блоке FPU используются существующие в х87 регистры данных ST0–ST7 (80-разрядные) и 64-разрядные мультимедийные регистры ММ0–ММ7, объединенные в общее пространство с регистрами ST.

Регистр указателя команд (RIP) и регистр флагов (RFLAGS) также расширены до 64 разрядов.

3.3.3. Регистровые структуры процессоров IA-64

В состав регистровых файлов IA-64 (рис.3.7) входят: 128 регистров общего назначения GPR (64-разрядных); 128 регистров с плавающей запятой FR (82-разрядных); 128 прикладных регистров (в основном 64-разрядных) AR; 64 одноразрядных регистров предикатов PR; 8 регистров переходов BR (64-разрядных); не менее 4-х регистров идентификатора процесса CPUID; счетчик команд IP; регистр маркера текущего окна CFM стека регистров и др.

Рис. 3.7. Регистровые структуры процессоров IA-64

64-разрядные регистры GPR0–GPR127 применяются не только для целочисленных операций IA-64; GPR8–GPR31 в режиме IA-32 используются также под целочисленные регистры и регистры селекторов и дескрипторов сегментов IA-32. GPR0–GPR31 называются статическими регистрами (GPR0 всегда содержит 0), а GPR32–GPR127 – стекируемыми регистрами. Статические регистры «видны» всем программам. Стекируемые регистры становятся доступными в программной единице через окно стека регистров, включающее локальные и выходные регистры, число которых задается командой alloc.

82-разрядные регистры с плавающей запятой FR0–FR127 также подразделяются на статические (FR0–FR31, причем всегда FR0 = 0.0, FR1 = 1.0) и вращаемые (FR32–FR127). FR8–FR31 в режиме IA-32 содержат числа с плавающей запятой и мультимедийные регистры. Вращение регистров является в некотором роде частным случаем переименования регистров, применяемого в современных суперскалярных процессорах с внеочередным выполнением команд. В отличие от них (переименование регистров осуществляется аппаратно) вращение регистров в IA-64 управляется программно.

Прикладные регистры AR0–AR127 – специализированные. Ряд AR-регистров является фактически регистрами IA-32. AR0–AR7 называются регистрами ядра. Запись в них привилегированна, но они доступны на чтение в любом приложении и используются для передачи приложению сообщений от операционной системы. AR16 (RSC) – регистр конфигурации стека регистров, используемый для управления работой стека регистров IA-64. AR40 (FPSR) – регистр состояния для команд с плавающей запятой IA-64.

Регистры предикатов PR0–PR63 являются одноразрядными, в них помещаются результаты выполнения команд сравнения. Обычно эти команды устанавливают сразу два соседних регистра PR в состояния «1» – истина, «0» – ложь или наоборот в зависимости от значения условия. Такая избыточность обеспечивает дополнительную гибкость.

64-разрядные регистры переходов BR0–BR7 применяются для указания адреса перехода в соответствующих командах перехода (если адрес перехода не кодируется в команде явно).

В регистрах CPUID 0 и CPUID 1 находится информация о производителе, в регистре CPUID 2 – серийный номер процессора, а в регистре CPUID 3 задается тип процессора (семейство, модель, версия архитектуры и т. п.) и число CPUID-регистров. Разряды регистра CPUID4 указывают на поддержку конкретных особенностей IA-64, которые реализованы в данном процессоре.

3.4. Структурная организация современных универсальных микропроцессоров

Характерными чертами современных универсальных микропроцессоров являются:

1. Суперскалярная архитектура, обеспечивающая одновременное выполнение нескольких команд в параллельно работающих исполнительных устройствах.

2. Динамическое изменение последовательности команд (выполнение команд с опережением – спекулятивное выполнение).

3. Конвейерное исполнение команд.

4. Предсказание направления ветвлений.

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

6. Параллельная обработка потоков данных.

7. Многоядерная структура.

8. Многопотоковая обработка команд.

9. Пониженное энергопотребление.

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

3.4.1. Стратегия развития процессоров Intel

Стратегия развития Intel заключается во внедрении новых микроархитектур процессоров, основанных на новых поколениях полупроводниковой производственной технологии. Темпы выпуска инновационных микроархитектур и полупроводниковых технологий основаны на принципе, который корпорация Intel называет моделью «TICK-TOCK» («ТИК-ТАК»). Каждый «TICK» обозначает (табл. 3.1) новый этап развития полупроводниковых технологий (техпроцесс – 65 нм, 45 нм, 32 нм), а каждый «TOCK» – создание новой микроархитектуры (Intel Core, Nehalem, Sandy Bridge). Переход на новый техпроцесс сопровождается выпуском соответствующих семейств процессоров (Penryn, Westmere).

Этот цикл, как правило, повторяется каждые 2 года. Новаторская микроархитектура «обкатывается» на текущем производственном процессе, затем переносится на новую производственную технологию. Данная модель развития позволяет осуществлять внедрение единообразной процессорной микроархитектуры во всех сегментах рынка.

 

Таблица 3.1

Стратегия развития процессоров Intel

Intel Core NEW Microarchitecture Penryn NEW Process Nehalem NEW Microarchitecture Westmere NEW Process Sandy Bridge NEW Microarchitecture
65 nm 45 nm 45 nm 32 nm 32 nm
2006 г. 2007 г. 2008 г. 2009 г. 2010 г.
TOCK TICK TOCK TICK TOCK

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

3.4.2. Особенности многоядерной процессорной микроархитектуры Intel Core

Микроархитектура Intel Core наследует философию эффективного энергопотребления, впервые реализованную в процессорах Intel Pentium M для мобильных ПК. Заимствовав лучшее от ставших основой для настольных и мобильных процессоров Intel микроархитектур Net Burst и Mobile, микроархитектура Intel Core содержит сотни нововведений, но основные из них сводятся к пяти технологическим решениям:

1. Технология Intel Wide Dynamic Execution (широкое динамическое исполнение).

2. Технология Intel Advanced Digital Media Boost (улучшенные цифровые медиа возможности).

3. Технология Intel Advanced Smart Cache (улучшенный интеллектуальный кэш).

4. Технология Intel Smart Memory Access (интеллектуальный доступ к памяти).

5. Технология Intel Intelligent Power Capability (интерактивное подключение подсистем).

Рассмотрим подробнее каждую из перечисленных технологий.

Технология Intel Wide Dynamic Execution

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

В новой архитектуре с «широким» динамическим исполнением связывают, во-первых, возможность исполнения большего числа операций за такт, чем это было раньше. Благодаря добавлению в каждое ядро декодеров и исполнительных устройств, каждое из ядер сможет выбирать из программного кода и исполнять до четырех х86 инструкций одновременно с помощью 14-стадийных конвейеров, в то время как предыдущие процессоры Intel, AMD (как настольные, так и мобильные) могли обрабатывать не более трех инструкций за такт. На 4 декодера (один для сложных инструкций и три – для простых) микроархитектура Core предполагает наличие 6 портов запуска (один – Load, два – Store и три – универсальных) исполнительных устройств.

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

Во-вторых, в дополнении к весьма удачной технологии micro-ops fusion (x86 инструкция распадается на последовательность микрокоманд, которые выполняются процессором в этой же последовательности) микроархитектура Core получила технологию macro fusion. Данная технология направлена на увеличение числа исполняемых за такт команд и заключается в том, что ряд пар связанных между собой последовательных х86 инструкций, таких как, например, сравнение со следующим за ним условным переходом, представляются декодером одной микрокомандой. Таким образом, пять выбранных х86 инструкций могут в каждом такте преобразовываться в четыре микрокоманды. Этим достигается как увеличение темпа исполнения кода, так и некоторая экономия энергии.

Технология Intel Advanced Digital Media Boost

До настоящего времени процессоры Intel исполняли одну SSE-инструкцию (SSE, SSE2, SSE3), работающую с 128-битными операндами, лишь за 2 такта. Один такт тратился на обработку старших 64 бит, второй такт – на обработку младших. Новая же микроархитектура позволяет ускорить работу с SSE инструкциями в два раза. Блоки SSE в данных процессорах полностью 128-битные, что дает возможность увеличить количество данных, обрабатываемых процессором за такт.

Кроме этого Intel в очередной раз провел ревизию системы команд SSE. Результатом стало расширение SSSE3 еще 32-мя новыми командами, а для процессоров (Penryn), выполненных по 45-нм технологическому процессу, использование нового набора команд SSE4.1, в который добавлено 47 новых команд, позволяющих ускорить, в том числе, кодирование видеозаписей с высоким разрешением и обработку фотоизображений.

Технология Intel Advanced Smart Cache

Процессоры с микроархитектурой Core имеют разделяемый между двумя ядрами L2 кэш. Плюсов такого подхода несколько:

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

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

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

Технология Intel Smart Memory Access

Под этим названием объединены несколько технологий.

1. Усовершенствованный алгоритм предварительной выборки данных. Микроархитектура Core предполагает реализацию в процессоре 6 независимых блоков предварительной выборки данных. Два блока нагружаются задачей предварительной выборки данных из памяти в общий L2 кэш. Еще по два блока работают с кэшами L1 каждого ядра. Каждый из этих блоков независимо друг от друга отслеживает закономерные обращения (потоковые, либо с постоянным шагом внутри массива) исполнительных устройств к данным. Базируясь на собранной статистике, блоки предварительной выборки стремятся подгружать данные из памяти в процессорный кэш еще до того, как к ним последует обращение. Также, L1 кэш каждого из ядер процессоров, построенных на базе Core, имеет по одному блоку предварительной выборки инструкций, работающих по аналогичному алгоритму.

2. Memory disambiguation (устранение противоречий при доступе к памяти). Данная технология направлена на повышение эффективности работы алгоритмов внеочередного исполнения инструкций, осуществляющих чтение/выгрузку (Load) и запись/сохранение (Store) данных в память.

Технология Intel Intelligent Power Capability

При разработке новой микроархитектуры Core инженеры стремились к оптимизации параметра «производительность на ватт». Поэтому они сразу предусмотрели набор технологий, направленных на снижение энергопотребления и тепловыделения, в первую очередь хорошо зарекомендовавшие себя технологии Intel Speed Step (динамическое изменение тактовой частоты процессора в зависимости от текущих потребностей в вычислительной мощности), Halt State (отключает некоторые блоки процессора во время их бездействия) и др.

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

Недостатки микроархитектуры Intel Core

Существенным недостатком процессоров микроархитектуры Intel Core стал их немодульный дизайн(немодульное проектирование). Они изначально проектировались как двухъядерные полупроводниковые кристаллы. Последующий же переход к выпуску многоядерных представителей Core 2 стал выявлять слабые места такого подхода. Так, 4-х ядерные и 6-ти ядерные представители микроархитектуры Intel Core просто собирались из нескольких 2-х ядерных кристаллов, что приводило к затруднению взаимодействия между ними. Обмен данными между разрозненными ядрами организовывался через системную память, что порой вызывало большие задержки, обусловленные ограниченной пропускной способностью процессорной шины.

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

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

3.4.3. Микроархитектура Intel Nehalem

Микроархитектура Nehalem является дальнейшим развитием рассмотренной выше микроархитектуры Intel Core.

Основные отличительные черты Nehalem

Основными отличительными чертами данной микроархитектуры являются следующие:

1. Усовершенствованное по сравнению с Core вычислительное ядро.

2. Многопоточная технология SMT (Simultaneous Multi-Threading), позволяющая исполнять одновременно два вычислительных потока на одном ядре.

3. Три уровня кэш-памяти: L1 кэш размером 64 Кбайта на каждое ядро, L2 кэш размером 256 Кбайт на каждое ядро, общий разделяемый L3 кэш размером 4, 8 до 24 Мбайт.

4. Интегрированный в процессор контроллер памяти с поддержкой нескольких каналов DDR3 SDRAM.

5. Новая шина QPI с топологией точка-точка для связи процессора с чипсетом и процессоров между собой.

6. Модульная структура.

7. Монолитная конструкция – процессор состоит из одного полупроводникового кристалла.

8. Технологический процесс с нормами производства не менее 45 нм.

9. Использование двух, четырех или восьми ядер.

10. Управление питанием и Turbo-режим.

Усовершенствования вычислительного ядра

Несмотря на то, что процессоры семейства Nehalem преподносятся Intel, как носители новой микроархитектуры, основная их часть – вычислительное ядро – по сравнению с Core изменилась не столь значительно, наибольшие улучшения кроются в инфраструктуре.

На рис. 3.8 представлена обобщенная структура ядра процессора с микроархитектурой Intel Nehalem.

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

Рис. 3.8. Структура ядра процессора микроархитектуры 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 команд, преобразуя их в четыре микрокоманды.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.