Память процессора pentium 2 организована как прямоугольный массив битов

Обновлено: 06.07.2024

Александр Андреев (alexander@vvv.srcc.msu.su),
Лаборатория Параллельных Информационных Технологий НИВЦ МГУ,
3 ноября 1997 г.

Микропроцессоры Pentium Pro и Pentium II образуют шестое поколение микропроцессоров Intel. Оба микропроцессора поддерживают систему команд IA-32. Pentium II дополнительно поддерживает стандартную систему команд MMX для ускорения мультимедийных приложений.

Динамическое исполнение (Dynamic Execution)

Микропроцессоры Pentium Pro / Pentium II используют концепцию динамического исполнения (dynamic execution) для освобождения от ограничений традиционного последовательного исполнения инструкций. Эти процессоры поддерживают динамическое исполнение с помощью следующих механизмов:

  1. Улучшенное предсказание ветвлений (branch prediction)
  2. Переименование регистров (register renaming)
  3. Предваряющее исполнение (speculative execution) предсказанных ветвей кода
  4. Переупорядоченное исполнение (out-of-order execution) инструкций

Встроенная кэш-память первого уровня

Микропроцессоры Pentium Pro / Pentium II на кристале содержат раздельные модули кэш-памяти первого уровня (L1 cache) для данных и инструкций. Размер каждого кэша равен 8K, длина строки (cache line) составляет 32K. Ассоциативность равна для кэша команд 4, для кэша данных - 2.
Оба кэша работают без блокировок; это означает, что запрос к данным, отсутствующим в кэше, не задерживает последующие запросы.

Стратегии записи (Write policies)

Для различных областей (страниц) памяти могут быть установлены различные стратегии записи в эти области:

  • Write Back - запись только в кэш
  • Write Combining - запись в память через 32-байтовый буфер записи, соответствующий одной строке памяти
  • Uncacheable - кэширование запрещено, запись только в память; используется для устройств В/B, отображаемых в память
  • Write Through - запись в кэш и одновременно в основную память
  • Write Protected - запись запрещена

Конвейерная архитектура

12-стадийный конвейер может быть поделен на три части слдеующим образом:

Последовательная подготовка к исполнению (In-order front-end)

  • предсказание следуюшего значения указателя команд (IP)
  • получение потока IA-инструкций из кэша команд; за один такт процессор считывает одну кэш-строку по адресу, записанному в IP
  • декодирование инструкций в простые микрокооперации (micro-ops)
  • переименование внешних IA-регистров для удаления зависимости по данным между микрооперациями
  • назначение функциональных устройств и запись статуса микроопераций в буфере переупорядочения инструкций (ROB)

Переупорядоченное исполнение (Out-of-order execution)

  • извлечение микроопераций, готовых к исполнению, из ROB и собственно исполнение
  • временное сохранение результатов этих микроопераций в ROB

Последовательное завершение (In-order retirement)

  • сохранение результатов во внешних IA-регистрах
  • сохранение данных в памяти, если необходимо
  • удаление завершенных микроопераций из ROB

Предсказание ветвлений

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

Информация об исполнении инструкций условного перехода записывается в 512-строчной таблице Branch Target Buffer (BTB). Для каждой инструкции в BTB хранятся 4 бита, указывающие на наличие перехода в 4 предыдущих случая ее исполнения. При наличии такой информации, используется динамическим алгоритм предсказания ветвлений.

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

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

Декодирование инструкций

Процессор содержит три модуля декодирования инструкций IA в микрооперации; эти декодеры условно обозначаются D0, D1 и D2; все три декодера могут работать параллельно. При этом D0 может декодировать инструкции, порождающие до 4 микроопераций. D1 и D2 могут декодировать только инструкции, порождающие 1 микрооперацию. Если D0 декодирует сложную инструкцию (длиной более 7 байт или порождающую более 4 микроопераций), D1 и D2 одновременно работать не могут.

Функциональные устройства

Функциональные устройства, непосредственно выполняющие микро-операции в процессорах Penitum Pro и Pentium II, связаны с ROB посредством пяти портов.

На рис. 1 показаны все функциональные устройства, вместе с соответствующими портами. Зеленым цветом выделены функциональные устройства, исполняющие MMX-операции и имеющиеся только в процессоре Pentium II.

Все порты и все функциональные устройства могут работать параллельно; однако за один такт каждый порт может использоваться только одним функциональным устройством.

Упражнение 1.14 Преобразуйте следующие двоичные числа без знака в десятичные.

d) 011101010100100 2

Упражнение 1.15 Преобразуйте двоичные числа без знака из упражнения 1.13 в шестнадцатеричные.

Упражнение 1.16 Преобразуйте двоичные числа без знака из упражнения 1.14 в шестнадцатеричные.

Упражнение 1.17 Преобразуйте следующие шестнадцатеричные числа в десятичные.

Глава 1 От нуля до единицы

Упражнение 1.18 Преобразуйте следующие шестнадцатеричные числа в десятичные.

Упражнение 1.19 Преобразуйте шестнадцатеричные числа из упражнения 1.17 в двоичные числа без знака.

Упражнение 1.20 Преобразуйте шестнадцатеричные числа из упражнения 1.18 в двоичные числа без знака.

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

Глава 1 От нуля до единицы

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

Упражнение 1.23 Преобразуйте двоичные числа из упражнения 1.21 в десятичные, считая, что эти двоичные числа представлены не в дополнительном, а в прямой коде.

Упражнение 1.24 Преобразуйте двоичные числа из упражнения 1.22 в десятичные, считая, что эти двоичные числа представлены не в дополнительном, а в прямой коде.

Упражнение 1.25 Преобразуйте следующие десятичные числа в двоичные числа без знака.

Глава 1 От нуля до единицы

Упражнение 1.26 Преобразуйте следующие десятичные числа в двоичные числа без знака.

Упражнение 1.27 Преобразуйте десятичные числа из упражнения 1.25 в шестнадцатеричные.

Упражнение 1.28 Преобразуйте десятичные числа из упражнения 1.26 в шестнадцатеричные.

Глава 1 От нуля до единицы

Глава 1 От нуля до единицы

Глава 1 От нуля до единицы

Упражнение 1.37 Система счисления по основанию 8 называется восьмеричной (octal) . Представьте каждое из чисел в упражнении 1.25 в восьмеричном виде.

Упражнение 1.38 Система счисления по основанию 8 называется восьмеричной (octal) . Представьте каждое из чисел в упражнении 1.26 в восьмеричном виде.

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

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

Глава 1 От нуля до единицы

Упражнение 1.41 Сколько 5-разрядных двоичных чисел, представленных в дополнительном коде, имеют значение большее, чем 0? Сколько – меньшее, чем 0? Каким будет правильный ответ в случае 5-разрядных двоичных чисел, представленных в прямом коде?

Упражнение 1.42 Сколько 7-разрядных двоичных чисел, представленных в дополнительном коде, имеют значение большее, чем 0? Сколько меньшее, чем 0? Каким будет правильный ответ в случае 7-разрядных двоичных чисел, представленных в прямом коде?

Упражнение 1.43 Сколько байтов в 32-битном слове? Сколько полубайтов?

Упражнение 1.44 Сколько байтов в 64-битном слове?

Упражнение 1.45 Если DSL-модем работает со скоростью 768 кбит/сек, сколько байт он может передать за 1 минуту?

Упражнение 1.46 USB3.0 передает данные со скоростью 5 Гбит/сек. Сколько байт USB3.0 может передать за 1 минуту?

Упражнение 1.47 Производители жестких дисков измеряют объемы данных в мегабайтах, что означает 10 6 байт, и гигабайтах, что означает 10 9 байт. Сколько гигабайтов музыки вы можете сохранить на 50-гигабайтном жестком диске?

Глава 1 От нуля до единицы

Упражнение 1.48 Без использования калькулятора рассчитайте приблизительное значение 2 31 .

Упражнение 1.49 Память процессора Pentium II организована как прямоугольный массив битов, состоящий из 2 8 строк и 2 9 колонок.

Без использования калькулятора рассчитайте приблизительное количество битов в этом массиве.

Упражнение 1.50 Нарисуйте цифровую шкалу, аналогичную изображенной на Рис. 1.11 для 3-битного двоичного числа, представленного в дополнительном коде и прямом коде.

Упражнение 1.51 Нарисуйте цифровую шкалу, аналогичную изображенной на Рис. 1.11 для 2-битного двоичного числа, представленного в дополнительном коде и прямом коде.

Упражнение 1.52 Сложите следующие двоичные числа без знака:

a) 1001 2 + 0100 2

b) 1101 2 + 1011 2

Укажите, если сумма переполняет 4-битный регистр.

Упражнение 1.53 Сложите следующие двоичные числа без знака:

Глава 1 От нуля до единицы

a) 10011001 2 + 01000100 2

b) 11010010 2 + 10110110 2

Упражнение 1.54 Выполните упражнение 1.52 , считая, что двоичные числа в этом упражнении представлены в дополнительном коде.

Упражнение 1.55 Выполните упражнение 1.53 , считая, что двоичные числа в этом упражнении представлены в дополнительном коде.

Упражнение 1.56 Преобразуйте следующие десятичные числа в 6-битные двоичные числа, представленные в дополнительном коде, и сложите их:

Читайте также: