Организация памяти

Содержание

Слайд 2

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Outline

Регистр флагов:
● флаги состояния;
● флаги управления;
● системные флаги.

Регистры процессора:
● основные понятия;
● счетчик команд;
● типы регистров и примеры их применения;

Резюме к лекции и список используемой литературы

Программная модель процессора:
● Введение ;
● Регистры процессора

Слайд 3

Физическая организация памяти Основная (главную, оперативную, физическую) Вторичная (внешнюю) память Организация

Физическая организация памяти

Основная
(главную, оперативную, физическую)

Вторичная
(внешнюю) память

Организация памяти:

Введение

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Процессор извлекает команду из основной памяти, декодирует и выполняет ее.

Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти.

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

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

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

В отличие от оперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти.

Слайд 4

Единицы памяти Байт (8бит) Слово (16 бит) Двойное слово (32 бит)

Единицы памяти

Байт
(8бит)

Слово
(16 бит)

Двойное слово
(32 бит)

Учетверённое слово
(64бит)

Параграфы
(области из 16 смешных байт)

ВСЁ ПРОСТРАНСТВО

ПАМЯТИ

Сегменты

Страницы

Организация памяти: Введение

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Слайд 5

Логическое Линейное Физическое ADDRESS MEMORY SPACES ЭВУ ruleZZZ!! Организация памяти: Три

Логическое

Линейное

Физическое

ADDRESS MEMORY SPACES

ЭВУ
ruleZZZ!!

Организация памяти: Три адресных пространства

Physics Faculty, Electronic Computing Devices

& Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Логическая память

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

Однако чаще модули помещаются в разные области памяти и используются по-разному.

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

Слайд 6

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Организация памяти: Сегментация

Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация.

Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа.

При использовании сегментированной модели (Segmented Model) для программы память представляется группой независимых адресных блоков, называемых сегментами.

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

Сегментация

позволяет

используется

эффективно управлять пространством логических адресов

для объединения областей памяти с общими атрибутами

Слайд 7

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich Организация памяти: Формирования адресов

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Организация памяти: Формирования адресов

Слайд 8

Организация памяти: Селектор сегмента Physics Faculty, Electronic Computing Devices & Systems,

Организация памяти: Селектор сегмента

Physics Faculty, Electronic Computing Devices & Systems,

7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Селектор сегмента хранится в старших 14 битах сегментного регистра (CS - выборка команд,
DS - любые другие ссылки на память, кроме тех, что используют в качестве базового регистр BP,EBP,ESP;
ES - Строка-приемник,
FS,GS - Ссылки на память, использующие в качестве базового регистр BP,EBP,ESP), участвующего в адресации конкретного элемента памяти

Логический адрес,
также называемый виртуальным,
состоит из селектора сегмента
(в реальном режиме – просто адреса сегмента) и эффективного адреса, называемого также смещением.

Слайд 9

Организация памяти: Формирования адресов Physics Faculty, Electronic Computing Devices & Systems,

Организация памяти: Формирования адресов

Physics Faculty, Electronic Computing Devices & Systems, 7th

semester,2011 Dr.Mokhovikov Alexander Yurievich

Эффективный адрес формируется суммированием компонентов base, index, displacement с учётом масштаба scale.

Смещение, ограниченное размером сегмент, может достигать 4Гбайт

Х

Каждая задача может иметь до 16Кбайт селекторов (214)

}

Логическое пространство для каждой задачи может достигать 64 Тбайт

● Смещение (Displacement или Disp) —
8-, 16- или 32-битное число, включенное в команду.
● База (Base) — содержимое базового регистра. Обычно используется для указания на начало некоторого массива.
● Индекс (Index) — содержимое индексного регистра. Обычно используется для выбора элемента массива.
● Масштаб (Scale) — множитель (1, 2, 4 или 8), указанный в коде инструкции. Этот элемент используется для указания размера элемента массива, доступен только при 32-битной адресации.

Слайд 10

Организация памяти: Режимы адресации Physics Faculty, Electronic Computing Devices & Systems,

Организация памяти: Режимы адресации

Physics Faculty, Electronic Computing Devices & Systems, 7th

semester,2011 Dr.Mokhovikov Alexander Yurievich

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

Слайд 11

Организация памяти: Режимы адресации Physics Faculty, Electronic Computing Devices & Systems,

Организация памяти: Режимы адресации

Physics Faculty, Electronic Computing Devices & Systems, 7th

semester,2011 Dr.Mokhovikov Alexander Yurievich

Эффективный адрес
Примеры формирования
EA=DISPLACEMENT (например, INC byte ptr [500h]);
EA=BASE (например, MOV AL,[BX] для операнда-источника);
EA=BASE+DISPLACEMENT (например, ADD AL,[ECX+1234h] для операнда-источника);
EA=BASE+(INDEX*SCALE) (например, SUB EAX,[EBX+ECX*2] для операнда-источника);
EA=INDEX*SCALE+DISPLACEMENT (например, MOV [EAX*4+TableOffset],BL для операнда-приемника);
EA=BASE+(INDEX*SCALE)+DISPLACEMENT (например, DEC dword ptr [EAX+ECX*2+200h]) и др.

Различия режимов адресации

Слайд 12

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Организация памяти: Линейный адрес

Блок сегментации
транслирует логическое адресное пространство в 32(64)-битное пространство линейный адресов

Линейный адрес
образуется сложением базового адреса сегмента с эффективным адресом

Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регистра на 16.
В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.

Перевести сегментный адрес в линейный очень просто: EA = Segment * 0x10 + offset

Слайд 13

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Организация памяти: Физический адрес

Физический адрес памяти образуется после преобразования линейного адреса блока страничной переадресации.
В простейшем случае он совпадает с линейным.
Блоком страничной переадресации осуществляет трансляцию линейного адреса в физический страницами (4Кбайт/2Мбайта/4Мбайта)

Физические адреса - это реальные адреса, используемые для выбора микросхем физической памяти, содержащих данные.

Слайд 14

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Организация памяти: Физический адрес

Физическая память организована в виде последовательности 8-разрядных байтов.
Каждому байту присвоен уникальный адрес, который может изменяться от 0 до 232-1 (или 236-1 у P6+).
Физическая память составляет единое целое с компьютером и управляется процессором (с некоторой помощью средств прямого доступа к памяти).

Формирование физического адреса памяти процессором,
с использованием
16-разрядных регистров

Физический адрес памяти состоит из двух(четырех)-битных частей – адреса сегмента(Seg) и исполнительного адреса EA (executive address), суммируемых со смещением на 4 бита.

Сдвиг адреса сегмента на 4 бита влево эквивалентен умножению на 16, следовательно, физический адрес
PA=16*Seg +EA

Слайд 15

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Структура кода команды

Команды в архитектуре IA-32 имеют большое разнообразие форматов, которые зависят от типа операции, режимов адресации операндов, длины используемых непосредственных операндов и смещений и ряда других факторов. Они имеют длину от 1 до 15 байт.

Формат двухоперандной команды общего вида:

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

Для операндов совместно с битом W, содержащимся в коде команды, префикс размера позволяет определить операнд длиной 8, 16 или 32 разряда.

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

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

Формат постбайта

Постбайт определяет местоположение операндов.
Основная часть команд микропроцессора с архитектурой IA-32 позволяет работать только с одним операндом, находящимся в оперативной памяти. Его режим адресации кодируется полями md и r/m постбайта.
Второй операнд либо извлекается из регистров общего назначения микропроцессора (его номер указывается в поле reg постбайта), либо кодируется в поле Imm самой команды (непосредственный операнд).

Байт масштабируемого индекса базы (SIB) служит для представления сложных структур памяти. На его наличие указывает код 100 в поле r/m постбайта.

Формат SIB-байта

Слайд 16

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Структура кода команды

Здесь SS – поле масштаба, Index задает номер одного из регистров общего назначения (РОН), используемого в качестве индексного регистра (регистр ESP не может быть регистром индекса).
Поле Base в комбинации с полем mod постбайта указывает регистр базы и смещение для индексированных операндов.

Применение SIB-байта позволяет формировать смещение в сегменте, иногда называемое эффективным адресом (EA), для операндов следующим образом:
где [base] – значение базового регистра, [index] – значение индексного регистра,
ss – величина масштабного множителя, disp – значение смещения, закодированного в самой команде. В качестве базы или индекса может быть использован любой регистр общего назначения микропроцессора.
Величина индекса может быть умножена на масштабный коэффициент (1, 2, 4 или 8), что дает возможность ссылки на элемент массива или записи соответствующей длины.

Смещение disp кодируется как величина со знаком в дополнительном коде.
Его длина определяется значением бита D в дескрипторе сегмента, битом W в первом байте команды и наличием или отсутствием префикса разрядности адреса. Этот механизм отражает основные усовершенствования в способах адресации операндов для 32-разрядной архитектуры IA-32 по сравнению с архитектурой x86.

Слайд 17

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Структура кода команды

EA = BASE + (INDEX*SCALE) + DISPLACEMENT

Слайд 18

Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю. Physics

Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю. Physics

Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

http://cracklab.ru/faq/Int3
http://sasm.narod.ru/apps/eflags/app_b.htm
http://club155.ru/x86cmd/POPF
http://kit-e.ru/articles/cpu/2006_9_148.php
http://de.ifmo.ru/--books/electron/cpu-cod.htm
http://www.viva64.com/ru/k/0035/
http://www.kailib.ru/arhitevm?start=23
http://www.zcub.ru/blog/org_comp_system/registry-processora.php

Основные используемые Интернет-ресурсы: