Память процессора 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) для освобождения от ограничений традиционного последовательного исполнения инструкций. Эти процессоры поддерживают динамическое исполнение с помощью следующих механизмов:
- Улучшенное предсказание ветвлений (branch prediction)
- Переименование регистров (register renaming)
- Предваряющее исполнение (speculative execution) предсказанных ветвей кода
- Переупорядоченное исполнение (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-битные двоичные числа, представленные в дополнительном коде, и сложите их:
Читайте также: