- •Введение
- •Принципы построения пк
- •Классификация памяти
- •1. По способу хранения (по виду запоминающего элемента)
- •2. По способу обращения:
- •3. По методу доступа.
- •Основные характеристики памяти
- •Имс статической памяти
- •Диаграммы работы статической памяти
- •Имс динамической памяти
- •Структурная схема динамической памяти
- •Временные диаграммы
- •Пакетный цикл Burst
- •Имс оперативной памяти
- •Пропускные способности различных типов памяти
- •Модули simm-30, sipp, simm-72
- •Модули dimm-168
- •Применение модулей dram в оперативной памяти Модули dimm-184 ddr sdram
- •Модули dimm-240 ddr2 sdram
- •Модули rimm
- •Маркировка
- •Банк памяти
- •Кэш память
- •Варианты установки кэш:
- •Функция отображения
- •Кэш с прямым отображением Основная память
- •-Адрес основной памяти
- •Множественно- ассоциативное отображение
- •Асинхронная статическая память
- •Прямой, обратный и дополнительный код
- •Типы данных
- •Форматы вещественных чисел
- •Алгоритм перевода числа из десятичного в вещественное
- •Регистры общего назначения процессора
- •Регистры специального назначения
- •Арифметико-логическое устройство
- •Организация памяти
- •Режим работы процессора
- •Сегментирование памяти
- •Физический адрес (фа)
- •Базовый адрес (ба)
- •Относительный адрес (оа)
- •Режим работы процессора
- •Разряд Формирование физического адреса в режиме реальных адресов
- •Формирование физического адреса в защищенном режиме
- •Логический адрес Формирование физического адреса при страничной сегментной организации памяти в 32-х битном режиме
- •Непосредственное значение Структуры команд
- •Способы адресации операндов
- •Режимы адресации процессора Pentium 4
- •Микропроцессорное устройство управления
- •Сигналы магистрали процессора
- •Типы циклов магистрали
- •Циклы захвата магистрали
- •Инициализация процессора.
- •Частоты, используемые в системе.
- •Производительность процессора.
- •Шина isa
- •Система прерываний.
- •Не маскируемые Аппаратные прерывания
- •Принцип работы контроллера pdp.
Режимы адресации процессора Pentium 4
Режимы адресации процессора Pentium 4 чрезвычайно нерегулярны и зависят от формата конкретной команды «16» или «32» разрядная. Поддерживаемые режимы адресации включают непосредственную, прямую, регистровую, косвенно- регистровую, индексную и специальную адресацию для обращения к элементам массива. Проблема заключается в том, что не все режимы применимы ко всем командам и не все регистры могут использоваться во всех режимах адресации. Это значительно усложняет задачу разработчика компилятора. Для управления режимами адресации имеется соответствующий байт. Один из операндов определяется по комбинации полей MOD и R/M. Второй операнд всегда является регистром и определяется по значению поля REG.
R/H |
MOD |
|||
00 |
01 |
10 |
11 |
|
000 |
M[EAX] |
M[EAX+8] |
M[EAX+32] |
EAX или AL |
001 |
M[ECX] |
M[ECX+8] |
M[ECX+32] |
ECX или CL |
010 |
M[EDX] |
M[EDX+8] |
M[EDX+32] |
EDX или DL |
011 |
M[EBX] |
M[EBX+8] |
M[EBX+32] |
EBX или BL |
100 |
SIB |
SIB+8 |
SIB+32 |
ESP или AH |
101 |
Прямая адресация |
Прямая адресация+8 |
Прямая адресация+32 |
EBP или CH |
110 |
M[ES] |
M[ES+8] |
M[ES+32] |
ESI или DH |
111 |
M[ED] |
M[ED+8] |
M[ED+32] |
EDI или BH |
Колонки 01 и 10 включаю режимы адресации, при которых значение регистра прибавляется 8 или 32 разрядному смещению, следующему за командой. Если выбрано 8 разрядное смещение, оно перед сложением получают 32 разрядное знаковое расширение. Например, команда ADD с полем R/M=011, полем MOD=01 и смешением, равным 6, вычисляем сумму регистра EBX и 6, и в качестве одной из операндов считывает слово из полученного адреса памяти. Значение регистра EBX не изменяется. При MOD=11 предоставляет возможность выбора из двух регистров. Для команд со словами берется первый вариант, для команд с байтами- второй. Отметим, что здесь не все регулярно. Например, нельзя выполнить косвенную адресацию через EBP или прибавить смещение к ESP. Иногда вслед за байтом MOD, следует дополнительный байт SIB. Байт SIB определяет масштабный коэффициент и два регистра. Когда присутствует байт SIB, адрес операнда вычисляется путём умножения индексного регистра на 1, 2, 4 или 8 (в зависимости от значения поля SCALE), прибавляем его к базовому регистру и наконец, возможным прибавлением 8 или 32 разрядного смещения, в зависимости от значения поля MOD. Практически все регистры могут использовать и в качестве индекса, и в качестве базы.
Режимы получаемые по средствам байта SIB, могут пригодится для обращения к элементам массива. Рассмотрим следующую JAVA-команду
For(i=0; i<n; i++);
A[i]=0;
Здесь а- массив 4-байтных целых чисел, относящийся к текущей процедуре. Обычно регистр EBP используется для указания на базу стекового фрейма, который содержит локальный переменные и массивы.
EBP
|
EBP+8 Другие локальные переменные |
EBP+12 a[0] |
EBP+16 a[1] |
a[2] |
Стековый фрейм
I в регистре EAX
Значение SIB M[4*EAX+EBP+8]
Компилятор должен хранить значение i в регистре EAX. Для доступа к элементу a[i] он будет использовать режим с байтом SIB, в котором адрес операнда равен сумме значений 4 EAX, EBP, и 8. Эта операция может сохранятся в a[i] за одну команду. Эта команда при надлежащим использовании позволит сэкономить несколько циклов, но она занимает определенную область памяти микросхемы, которая могла бы пригодиться. Например, можно было бы сделать больше кэш памяти первого уровня, или уменьшить размер микросхемы, обеспечив возможность повышения тактовой частоты.