Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Логика предсказания ветвления



Микропроцессор Pentium использует логику предсказания ветвления, чтобы снизить необходимое для выполнения ветвления время, которое связано с внутренними задержками. Эти задержки минимизируются, поскольку блок предвыборки при встрече команды ветвления (в данном случае только вероятной) микропроцессор начинает предварительно выбирать команду, на которую должен произойти переход. Процессор Pentium выполняет упреждающую обработку переходов, используя буфер адресов переходов ВТВ, иначе называемый как целевой буфер переходов (branch target buffer), и два буфера предварительной выборки. Один буфер применяется для предварительной выборки команды в предположении, что перехода нет, а другой выполняет предвыборку команд, используя содержимое буфера ВТВ, которое было запомнено при первом переходе. Буфер ВТВ может хранить до 256 результатов переходов, что позволяет прогнозировать вложенные циклы. Затем инструкции из буферов предвыборки загружаются в кэш команд, чтобы при возникновении ветвления необходимые команды уже имелись в наличии и позволили бы выполнить ветвление за один такт. При ошибочном предсказании перехода конвейеры команд обнуляются и предвыборка команд начинается заново. Тогда либо при какой-либо другой ошибке в логике предсказания ветвления для выполнения операции ветвления потребуется три дополнительных периода синхронизации. Однако в большинстве случаев предсказание ветвления является правильным и никаких задержек не происходит.

 

Структура кэш-памяти

Кэш-память микропроцессора Pentium изменена по сравнению с кэш-памятью микропроцессора 80486. Микропроцессор Pentium содержит два раздельных блока кэш-памяти по 8 Кбайт каждый вместо одного, как это было в микропроцессоре 80486. Имеется кэш-память данных и кэш-память команд. Кэш команд содержит только команды, а кэш данных содержит данные, используемые командами.

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

 

Суперскалярная архитектура

Микропроцессор Pentium, в отличие от процессора 80486, имеет суперскалярную архитектуру, состоящую из трех операционных блоков. Один блок выполняет команды с плавающей точкой (сопроцессор), а два другие блока (U-конвейер и V-конвейер), работая параллельно, выполняют команды над целочисленными данными. Это означает, что одновременно можно исполнять три команды. Например, команда fadd st, st(2), команда mov еах, 10H и команда mov евх, 12H могут выполняться од­новременно, поскольку ни одна из этих команд не зависит друг от друга. Команда fadd st, st(2) выполняется сопроцессором, команда mov еах, 10н выполняется U-конвейером, а команда mov евх, 12H — V-конвейером. Поскольку сопроцессор используется также для выполнения ММХ - команд, разумеется, при их наличии, то микропроцессор Pentium одновременно может выполнять две команды над целочисленными данными и одну ММХ - команду.

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

 

Специальные регистры микропроцессора Pentium

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

 

Управляющие регистры

На рис. 6.9 показан формат управляющих регистров для микропроцессора Pentium. В набор управляющих регистров добавлен новый управляющий регистр CR4. В данном разделе текста объясняются только новые компоненты в управляющих регистрах микропроцессора Pentium. Формат управляющих регистров микропроцессора 80386 приведен на рис. 6.5


 

Рис. 6.9. Формат управляющих регистров микропроцессора Pentium

CD

Бит CD (cache disable) регистра CR0 управляет внутренней кэш-памятью процессора. Если CD = 1, то кэш запрещен и не заполняется новыми данными по промахам при обращении в кэш, но продолжает функционировать при удачном обращении в кэш-память. Если CD = 0, то микропроцессор работает как обычно — промахи вынуждают кэш заполняться новыми данными. Этого бита не было в процессоре 80386, но он появился в 80486.

NW

Бит NW (not write-through) регистра CR0 выбирает режим работы для данных кэш-памяти. Если бит NW = 1, то для кэш-памяти данных запрещается сквозная запись. Этого бита не было в процессоре 80386, он стал использоваться, начиная с процессора 80486.

AM

Бит AM (alignment mask) регистра CR0 позволяет выполнять контроль выравнивания, если он установлен, и запрещает этот контроль, если он очищен. Контроль выравнивания выполняется только в защищенном режиме, когда бит AM установлен, установлен флаг АС, а уровень привилегий имеет значение 3 (режим пользователя). Бит стал использоваться, начиная с процессора 80486.

WP

Если бит WP (write protect) регистра CR0 установлен, то он защищает от записи страницы уровня пользователя при доступе в режиме супервизора. Если этот бит очищен, то страницы уровня пользователя, предназначенные только для чтения, могут быть затерты записью процессом супервизора. Этого бита не было в процессоре 80386, но он появился, начиная с микропроцессора 80486.

NE

При установленном бите NE (numeric error) регистра CR0 разрешается стандартный механизм сообщений об ошибках при операциях сопроцессора. Если бит NE = 1, то вывод FERR активизируется при ошибке сопроцессора. Если бит NE = 0, то любая ошибка сопроцессора игнорируется. Этот бит стал использоваться, начиная с процессора 80486.

PCD

Бит PCD (page cache disable) регистра CR3 запрещает кэширование страниц. Состояние этого бита устанавливается в зависимости от состояния одноименного вывода микропроцессора. Этот бит стал использоваться, начиная с процессора 80486.

PWT

Состояние бита PWT (page write-through) регистра CR3 устанавливается в зависимости от состояния одноименного вывода микропроцессора во время циклов шины, не работающих со страницами (например, циклов квитирования прерывания), когда подкачка страниц разрешена. Если подкачка страниц запрещена, то состояние этого бита устанавливается в любых циклах шины. Этого бита не было в процессоре 80386, но он появился, начиная с микропроцессора 80486.

VME

Бит VME (virtual mode extension) регистра CR4 разрешает поддержку флага виртуального прерывания в защищенном режиме. Если бит VME = 0, то поддержка виртуального прерывания запрещается.

PVI

Бит PVI (protected mode virtual interrupt) регистра CR4 разрешает использование флага виртуального прерывания в защищенном режиме.

TSD

Бит TSD (time stamp disable) регистра CR4 управляет командой rdtsc.

DE

Бит DE (debugging extension) регистра CR4, если он установлен, то попытки обращения к регистрам DR4 и DR5 вызывают исключение недопустимого кода операции, если же бит сброшен, то разрешает использовать регистры DR4 и DR5 для установки контрольных точек останова при обращении к портам ввода-вывода.

PSE

Бит PSE (page size extension) регистра CR4, если он установлен, разрешается использовать страницы памяти размером по 4 Мбайта, если же он сброшен, то используются стандартные страницы по 4 Кбайта.

МСЕ

Бит MCE (machine check enable) регистра CR4, если он установлен, то разрешается исключение машинного контроля (аппаратной проверки), возникающее, когда блок внутреннего контроля операций внутри чипа или на шине обнаруживает ошибку, если же бит МСЕ сброшен, то это исключение запрещается.

Микропроцессор Pentium в сравнении с микропроцессором 80486 имеет новые особенности, которые управляются с помощью битов регистра CR4, а в сравнении с процессором 80386 содержит еще несколько битов и в регистре CR0.

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

Расширенный регистр флагов EFLAG (extended flag register) в микропроцессоре Pentium немного видоизменен. На рис. 6.10 показано содержимое регистра EFLAG. В этот регистр процессора Pentium добавлены три новых флага (бита) по сравнению с микропроцессором 80486. Неиспользуемые биты регистра флагов зарезервированы для возможного использования в будущих версиях процессоров.

Рис. 6.10. Формат регистра EFLAG микропроцессора Pentium

 

ID

Бит ID (identification flag) используется командой идентификации процессора cpuid для тестирования. Если программа может устанавливать и сбрасывать флаг ID, то процессор поддерживает команду cpuid.

VIP

Бит VIР (virtual interrupt pending) указывает, что виртуальное прерывание задерживается. Системное программное обеспечение устанавливает этот флаг, если требуется отложить обработку прерывания. Используется совместно с VIF.

VIF

Бит VIF (virtual interrupt) — это виртуальный флаг прерывания, который является виртуальным образом флага IF и используется совместно с флагом VIP.

Следует отметить, что флаг AC (alignment check), указывающий на состояние бита AM в управляющем регистре CR0, был добавлен еще в микропроцессоре 80486.

Встроенный самоконтроль

Встроенный тест самоконтроля BIST (built-in self-test) выполняется после включения питания посредством установки сигнала высокого логического уровня на вывод INIT, в то время как сигнал на выводе RESET изменяется с высокого на низкий логический уровень. Тест BIST проверяет 70% внутренней структуры микропроцессора Pentium примерно за 150 мкс. По завершению проверки встроенного самоконтроля микропроцессор Pentium сообщает результат в регистре ЕАХ. Если ЕАХ = 0, то самоконтроль пройден и микропроцессор Pentium готов к работе. Если же бит ЕАХ содержит любой другой показатель, то микропроцессор функционирует неправильно и неисправен.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-03-22; Просмотров: 1247; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь