- •Архитектура современной вычислительной системы (обзор)
- •Кэши ассоциативные, с прямым отображением и множественно-ассоциативные
- •Представление бинарных данных
- •Режимы работы процессоров семейства i8086+
- •Регистры i8086+
- •Формат инструкции
- •Некоторые инструкции ЦПУ (не включая инструкции FPU, MMX, SSEn и пр.)
- •Формирование кодов основных инструкций i8086+
- •Соответствие мнемоники машинным кодам на примере инструкции пересылки (mov)
- •Режим реальных адресов i8086 (real mode)
- •Синтаксис основных ассемблеров (Intel и AT&T) семейства процессоров i8086+
- •Адреса: короткие, ближние, дальние; перемещаемые записи
- •Сегменты, секции, модели памяти, страницы
- •Переходы, вызовы процедур
- •Символы и макросы
- •Структура физического адресного пространства режима реальных адресов
- •Простейший пример BIOS
- •Некоторое оборудование IBM PC
- •Инициализация контроллера прерываний
- •Инициализация контроллеров клавиатуры PS/2
- •Инициализация PS/2 мыши
- •Инициализация таймера 8253/8254
- •Работа с последовательным интерфейсом UART
- •Программирование контроллера DMA 8257/8237
- •Прерывания в SMP системе; измерение времени
- •Инициализация локального контроллера прерываний (LAPIC)
- •Инициализация контроллера прерываний ввода-вывода (IO APIC)
- •Сегментная модель защищенных режимов i286...x64
- •Общая структура дескриптора
- •Cегмент состояния задачи; переключение стеков
- •«Нереальный 8086»
- •Системные вызовы
- •Структура адресного пространства многопоточного приложения (C, расширение MSVC) с обработкой исключений (Win32).
- •Структура адресного пространства многопоточного приложения (C++) с обработкой исключений (Posix Threads (NPTL); Linux; IA-32)
- •Страничная модель защищенных режимов i386...x64
- •Соглашения о вызовах C/C++ (платформы IA-32, x64)
- •Пример программы, демонстрирующей различные соглашения о вызовах.
- •Основные средства управления адресным пространством, основанные на страничном механизме
- •Запрет на исполнение данных
- •Пример использования уязвимости типа «переполнение буфера в стеке»
- •Проецирование файлов.
- •Императивный способ управления проецированием.
- •Пример создания разделяемого проецирования для межпроцессного взаимодействия
- •Исполняемые файлы и динамические библиотеки
- •Построение динамических библиотек
- •Загрузка библиотек на этапе исполнения.
- •Экспорт, импорт, перемещаемые записи в Windows
- •Экспорт, импорт, перемещаемые записи в Posix
- •POSIX. Позиционно-независимый код в архитектуре IA-32.
- •Построение и использование статических библиотек объектных файлов
- •Встроенный ассемблер; понятие барьеров оптимизации и барьеров памяти.
- •Пример измерения коротких интервалов времени
- •SMP, критические секции и взаимные блокировки
- •Литература
Архитектура современной вычислительной системы (обзор)
ЦПУ |
|
Видео |
|
Rn |
АЛУ |
контроллер |
|
|
|
||
УУ |
|
ОЗУ |
Контроллер |
|
|
клавиатуры |
|
|
|
Общая шина |
|
|
Сетевой |
Контроллер |
|
|
управления |
Шина |
|
|
адаптер |
||
|
дисками |
|
|
|
|
|
Сеть |
Диск0 |
|
Диск1 |
|
|
|
|
P6 |
|
Блок |
|
|
|
|
|
|
P6 |
Предсказание переходов |
согласования |
|
|
|
|
|
Предсказ |
||
|
|
результатов |
|
|
|
|
|
|
|
Предвыборка/ |
Очередь команд |
Разупорядоченное ядро |
Предвыбор |
||||||
декодирование |
|
декодирова |
|||||||
Кэш-память |
Кэш-память |
Конвейер |
|
|
|
|
|
||
ФУ1 |
ФУ |
|
... |
ФУ |
|
|
|||
1го уровня |
1го уровня |
|
|
|
2 |
|
|
N |
|
(инструкции) |
(данные) |
Конвейер |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Кэш-память |
ФУ1 |
ФУ2 ... |
ФУN |
Кэш |
||||
|
|
|
|
|
|
|
|
||
|
2го уровня |
Конвейер |
|
|
|
|
2го у |
||
|
|
|
|
|
|
|
|||
|
|
ФУ |
1 |
ФУ2 ... |
ФУN |
|
|||
|
|
|
|
|
|
|
|
|
|
Устройство сопряжения |
|
Регистры (Rn) |
|
|
Устройство |
||||
|
с шиной |
|
|
|
с ш |
||||
|
|
|
|
|
|
|
|
- УУ выбирает команду для исполнения |
|
|
Локальная шина |
|
|
|
|
||
- получить эффективный адрес исполняемой инструкции |
|
|
|
|
|
|
|
|
|
- вычислить физический адрес инструкции |
|
|
|
|
северный |
|
|
|
|
- послать по шине запрос на считывание кода инструкции |
|
западный |
|
|
мост |
восточный |
|
|
|
- сохранить код операции во внутреннем регистре |
|
|
|
|
|
|
|
||
- УУ анализирует полученную инструкцию и осуществляет выборку операндов |
|
мост |
|
|
|
мост |
|
|
|
|
|
|
GMCH |
|
|
|
|
||
- для каждого операнда, размещенного в памяти: |
Видео |
(AGP) |
|
|
Шина памяти |
|
|||
- получить эффективный адрес операнда |
контроллер |
|
контроллер- |
|
|
|
|
||
- вычислить физический адрес операнда |
|
|
концентратор |
|
|
|
|
||
- послать по шине запрос на считывание операнда |
|
|
|
памяти |
|
|
|
|
|
- поместить операнд во внутренний регистр |
|
|
|
|
|
|
|
||
|
|
|
|
|
ОЗУ |
ОЗУ |
ОЗУ |
ОЗУ |
|
- УУ передает команду в АЛУ (если команда выполняется в АЛУ) |
|
|
|
|
|
||||
- АЛУ выполняет команду и сохраняет результат во внутреннем регистре |
|
южный |
(HI) |
(HI) |
(HI) |
|
|
|
|
- УУ сохраняет результат в операнде-приёмнике |
|
|
|
|
|
||||
|
мост |
|
|
|
|
||||
- послать по шине запрос на запись операнда (приёмник обычно является |
|
|
|
|
|
|
|
|
|
одним из источников и его адрес уже известен) |
|
|
|
IOCH |
|
|
Сеть |
|
|
Основные понятия: |
|
|
|
Сетевой |
|
||||
|
|
контроллер- |
|
|
|||||
- частота, ширина, арбитраж и протокол шины |
|
|
адаптер |
|
|
||||
|
|
концентратор |
|
|
|||||
- прерывания, исключения, остановы, программные прерывания |
|
|
|
|
|
|
|||
|
|
ввода-вывода |
|
|
|
|
|||
- устройства, управляющие шиной (master-bus) |
|
|
|
|
|
|
|||
- блокировка шины (сигнал #lock шины, инструкции с префиксом lock) |
|
|
|
|
|
(PCI) |
|
|
|
- SMP (MPP, NUMA, cc-NUMA, CUMA) |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Повышение производительности процессора: |
|
|
|
|
|
|
|
|
(USB) |
- конвейерные процессоры, RISC и CISC |
|
PS/2 |
контроллер |
|
мост |
(USB) |
Разветвитель |
|
|
- цена ветвлений, спекулятивное исполнение, предсказание переходов, условные присваивания |
|
|
|
|
|||||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
(USB) |
||
- параллелизм кода, VLIW и суперскалярные процессоры |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- упреждающее чтение, разупорядоченные чтения и запись, барьеры памяти |
|
|
|
контроллер |
|
|
|
|
|
Повышение производительности памяти (кэширование): |
|
|
|
(EIDE) |
|
|
|
||
|
|
|
|
|
|
|
|
||
- сквозная (write-through) и отложенная (write-back) запись в кэш |
Диск 0 |
(SATA) |
|
контроллер |
|
|
|
|
|
- прямой, ассоциативный и множественно-ассоциативные кэши |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
- когеррентность кэш-памяти, MESI |
|
|
|
|
|
CD-ROM |
|
|
Кэши ассоциативные, с прямым отображением и множественно-ассоциативные
|
|
|
Длина строки кэша = 32 |
|
(25) |
|
|
Адрес 0x24C = 0b0010 0100 1100 |
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
00 04 08 0C 10 14 18 1C |
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
5 бит |
|
5 бит |
|
|
|
|
||||||||||||||
|
|
0000 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
0020 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
Тэг |
|
Смещение |
|
|
|
|
||||||||||||||||
|
|
0040 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|
|
|
||||||||||||||||||
строкикэша |
0060 |
|
|
|
|
|
|
|
|
|
|
10010 |
|
01100 |
|
|
|
|
|
строки)(25 кэша |
|||||||||||||
0140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
0080 |
|
|
|
|
|
|
|
отображение |
Тэг=0x12 |
|
Смещение=0xC |
|
|
||||||||||||||||||
|
|
00A0 |
|
|
|
|
|
|
|
строки кэша |
|
|
|
||||||||||||||||||||
|
|
00C0 |
|
|
|
|
|
|
|
определяется |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
00E0 |
|
|
|
|
|
|
|
её тэгом |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
0100 |
|
|
|
|
|
|
|
Длина строки кэша = 32 (25) |
|
|
|||||||||||||||||||||
|
|
0120 |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
(25) |
0160 |
|
|
|
|
|
|
|
|
Тэг «Время» |
|
00 04 08 0C 10 14 18 1C |
|
|
|
|
32 |
|
|||||||||||||||
0180 |
|
|
|
|
|
|
|
|
#0x00 |
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 (23) строк |
|||||||||||||||
=ОЗУОбъем1K (210) или 32 |
0340 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ОЗУОбъем= 1K (210) или |
|||||||||
|
|
01A0 |
|
|
|
|
|
|
|
|
#0x14 |
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
01C0 |
|
|
|
|
|
|
|
|
#0x12 |
54 |
|
|
|
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|||||||||
|
|
01E0 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
#0x02 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0200 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
#0x11 |
986 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0220 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
#0x0F |
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0240 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
#0x01 |
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0260 |
|
|
|
|
|
|
|
|
#0x10 |
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
0280 |
|
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
при вытеснении |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
02A0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
выбирается самая |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
02C0 |
|
|
|
|
|
|
|
|
|
«старая» строка |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
02E0 |
|
|
|
|
|
|
|
|
(LRU -Least Recently Used) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
0300 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0320 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0380 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03A0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03C0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03E0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
В приведенных иллюстрациях предполагается использование кэш-памяти объемом 256 |
|
|
|||||||||||||||||||||||||||||||
байт (28) со строками длиной 32 байта (25) каждая (т.е. кэш содержит 8 (23) строк); общий |
|
|
|||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
объем ОЗУ составляет 1К (210 байт, 25 строк). |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
Ассоциативный кэш — любая строка кэша может быть отображена в любую строку ОЗУ; |
|
|
|||||||||||||||||||||||||||||||
текущее отображение задается тэгом строки. При обращении к данным необходим поиск |
кэша |
||||||||||||||||||||||||||||||||
строки с нужным тэгом в кэше; в случае промаха выполняется поиск и вытеснение самой |
|||||||||||||||||||||||||||||||||
«старой» (LRU) строки. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
строки)5 |
|||||||||||
кэш-памяти, каждая строка кэша может быть сопоставлена со строкой ОЗУ из |
|||||||||||||||||||||||||||||||||
Кэш с прямым отображением |
— каждой строке ОЗУ сопоставлена только одна строка |
|
|
||||||||||||||||||||||||||||||
ограниченного набора (строк, отстоящих друг от друга на расстояние, равное размеру кэш- |
(2 |
||||||||||||||||||||||||||||||||
32 |
|||||||||||||||||||||||||||||||||
памяти). При обращении к данным номер строки кэш-памяти однозначно определяется |
|||||||||||||||||||||||||||||||||
или |
|||||||||||||||||||||||||||||||||
адресом, попадание или промах определяется совпадением тэга адреса с тэгом строки |
|||||||||||||||||||||||||||||||||
10) |
|||||||||||||||||||||||||||||||||
кэша. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1K (2 |
||||
Множественно-ассоциативный кэш — каждой строке ОЗУ сопоставлена группа из |
|||||||||||||||||||||||||||||||||
нескольких возможных строк кэша (зона). Каждая зона организована как небольшой (4-8-16 |
= |
||||||||||||||||||||||||||||||||
строк, редко больше) ассоциативный кэш. При обращении к данным в ОЗУ номер |
ОЗУ |
||||||||||||||||||||||||||||||||
проверяемой зоны однозначно определяется адресом; внутри зоны используют LRU или |
Объем |
псевдо-LRU. (Часто множественно-ассоциативный кэш размером 2N строк рассматривают не как набор 2N-K зон по 2K строк, а как 2K банков по 2N-K строк каждый; строка в банке определяется прямым отображением, выбор нужного банка — LRU).
|
Длина строки кэша = 32 |
|
|
(25) |
|
|
Адрес 0x24C = 0b0010 0100 1100 |
|
|
||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
00 04 08 0C 10 14 18 1C |
|
|
|
|
|
|
|
|
|
|||||||||||||||||
0000 |
|
|
|
|
|
|
|
|
|
|
2 бита |
|
|
|
|
3 бита |
|
|
|
|
|
|
5 бит |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
0020 |
|
|
|
|
|
|
|
|
|
|
|
Тэг |
|
|
|
|
Строка |
|
|
|
|
|
Смещение |
|
|
||||
0040 |
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
10 |
|
|
|
010 |
|
|
|
|
|
|
01100 |
|
|
|||||||||||
0060 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
0080 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тэг=2 |
Строка=2 |
Смещение=0xC |
|||||||||||||||||
00A0 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
00C0 |
|
|
|
|
|
|
|
тэги совпадают → кэш |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
00E0 |
|
|
|
|
|
|
|
содержит нужную строку |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0100 |
|
|
|
|
|
|
|
Длина |
строки кэша = 32 (2 |
|
|
|
|
|
|
|
|
|
|||||||||||
0120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
0140 |
|
|
xx xx xx xx xx xx xx xx |
|
Тэг |
|
00 04 08 0C 10 14 18 1C |
|
N |
|
|
|
|
|
|
||||||||||||||
0160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
0180 |
|
|
|
|
|
|
|
|
#1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
01A0 |
|
|
|
|
|
|
|
|
#0 |
#2 |
|
xx xx xx xx xx xx xx xx |
(1) |
строк)3 |
|
|
|
||||||||||||
0200 |
|
|
|
|
|
|
|
|
#0 |
|
(4) |
|
|
|
|||||||||||||||
01C0 |
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
|
|
|
|
||||||||||||
01E0 |
|
|
|
|
|
|
|
|
#2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(3) |
|
|
|
|
|
|
0220 |
|
|
|
|
|
|
|
|
#3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(5) |
8 (2 |
|
|
|
|
|
0240 |
|
|
xx xx xx xx xx xx xx xx |
|
#1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(6) |
|
|
|
|
||||||
0260 |
|
|
|
|
|
|
|
|
#0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(7) |
|
|
|
|
|
|
0280 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02A0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02C0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02E0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0300 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0320 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0340 |
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
0360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0380 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03A0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03C0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03E0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Длина строки кэша = 32 |
|
(25) |
|
|
Адрес 0x24C = 0b0010 0100 1100 |
|
|
|||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||||
|
|
|
00 04 08 0C 10 14 18 1C |
|
|
|
|
|
|
|
|||||||||||||||||||
0000 |
|
|
|
|
|
|
|
|
|
|
|
3 бита |
|
2 бита |
|
|
|
|
|
5 бит |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
0020 |
|
|
|
|
|
|
|
|
|
|
|
Тэг |
|
Зона |
|
|
|
|
Смещение |
|
|
||||||||
0040 |
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
100 |
|
|
|
|
10 |
|
|
|
|
|
|
01100 |
|
|
||||||||||
0060 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
0080 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
отображение строкиТэг=4 |
|
Зона=2 |
Смещение=0xC |
|||||||||||||||||||
00A0 |
|
|
|
|
|
|
|
|
|||||||||||||||||||||
00C0 |
|
|
xx xx xx xx xx xx xx xx |
кэша определяется |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
00E0 |
|
|
|
|
|
|
|
её тэгом и зоной |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0100 |
|
|
|
|
|
|
|
|
Длина строки кэша = 32 (25) |
|
|
|
|
|
|
|
|||||||||||||
0120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
0140 |
|
|
xx xx xx xx xx xx xx xx |
|
Тэг «Время» |
|
00 04 08 0C 10 14 18 1C |
|
N |
|
|
||||||||||||||||||
0160 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
0180 |
|
|
|
|
|
|
|
|
#0 |
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(0) |
|
|
|
01A0 |
|
|
|
|
|
|
|
|
#5 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
строк |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
||||||
01E0 |
|
|
|
|
|
|
|
|
#0 |
|
321 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
01C0 |
|
|
xx xx xx xx xx xx xx xx |
|
#4 |
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
0200 |
|
|
|
|
|
|
|
|
#1 |
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
) |
||
0220 |
|
|
|
|
|
|
|
|
#4 |
|
83 |
|
|
|
|
xx xx xx xx xx xx xx xx |
(23 |
||||||||||||
0240 |
|
|
xx xx xx xx xx xx xx xx |
|
#7 |
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(3) |
8 |
||||||
0260 |
|
|
|
|
|
|
|
|
#2 |
|
97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
0280 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
адрес определяет зону |
|
|
|
|
|
|
|
|
|
||||||||||||
02A0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
02C0 |
|
|
xx xx xx xx xx xx xx xx |
|
для размещения строки; |
|
|
|
|
|
|
|
|
|
|||||||||||||||
02E0 |
|
|
|
|
|
|
|
внутри зоны используется LRU |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0300 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0320 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0340 |
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
0360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0380 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03A0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03C0 |
|
|
xx xx xx xx xx xx xx xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
03E0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Представление бинарных данных |
|
|
|
|
|
|
|
|
|
Основная проблема с точки зрения человека — разные порядки нумерации слов в тексте |
|||||||||||||||||||||
При использовании разных систем счисления (наиболее распространены |
(или последовательности чисел) и цифр в числах: |
|
|
|
|||||||||||||||||||||||||||
системы с основаниями 2, 8, 16 — степенями двойки) используется |
Слова или числа - слева-направо: |
|
|
|
|
|
|
||||||||||||||||||||||||
позиционная форма записи чисел. При этом самый младший разряд |
|
|
|
|
|
|
|||||||||||||||||||||||||
Первое → Второе → Третье → Четвертое … т.е. нумерация «ячеек памяти», куда |
|||||||||||||||||||||||||||||||
пишется самым последним, правым. (Видимо, унаследовано от |
|
|
|
||||||||||||||||||||||||||||
|
|
|
помещаются «слова» идет слева-направо:0..1..2..3..4... и т.п. |
|
|||||||||||||||||||||||||||
«обратного» направления арабского письма - справа-налево). |
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
Цифры в числе (арабская запись) - справа-налево: |
|
|
|
|||||||||||||||||||||||||
Двоичное |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… 4 ← 3 ← 2 ← 1 ← 0 |
|
|
|
|
|
|
|
|
||||||||
00100010101101010011011111100100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
последняя цифра представляет собой младший (первый) разряд в числе. |
||||||||||||||||||||||||||
Восьмиричное |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
т.е. нумерация разрядов идет справа-налево: ...4..3..2..1..0 |
|||||||||||||||||
00 100 010 101 101 010 011 011 111 100 100 |
|
|
|
||||||||||||||||||||||||||||
0 |
4 |
2 |
5 |
|
5 |
2 |
3 |
3 |
7 |
4 |
4 = 04255233744 |
При воспроизведении, к примеру, 16ти разрядного образа памяти, байты (или слова, или |
|||||||||||||||||||
Шестнадцатиричное |
|
|
|
|
|
|
|
|
|
|
|
|
|
двойные слова и т.п.) обычно перечисляются в привычном нам порядке слов, а вот разряды |
|||||||||||||||||
0010 0010 1011 0101 0011 0111 1110 0100 |
|
|
|
|
в числах — в арабском. |
|
|
|
|
|
|
|
|
|
|||||||||||||||||
2 |
|
2 |
B |
|
5 |
3 |
|
7 |
|
|
E |
4 = 0x22B537E4 |
Например, последовательность чисел 0x04030201, 0x08070605, 0x000B0A09 будет |
||||||||||||||||||
_TEXT segment byte public 'CODE' use16 |
|
|
.code16 |
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
представлена как: |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
assume cs:_TEXT |
|
|
|
|
|
|
|
|
.section .text |
|
|
|
04030201 |
|
08070605 |
|
000B0A09 |
|
- в виде списка двойных слов |
||||||||||||
org 100h |
|
|
|
|
|
|
|
|
|
.=0x100 |
|
|
|
|
0201 |
0304 |
0605 |
0807 |
0A09 |
000B |
- в виде списка слов |
||||||||||
start: |
|
|
|
|
|
|
|
|
|
|
start: |
|
|
|
|
|
|||||||||||||||
int 20h |
|
|
|
|
|
|
|
|
int $0x20 |
|
|
|
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
00 |
- в виде списка байт |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
|
|||||
|
|
dd 01234567h, 89ABCDEFh |
|
|
|
|
|
.long 0x01234567 |
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
Такой порядок называется «Little-Endian» — в меньших адресах размещаются младшие |
|||||||||||||||||||||||
|
|
db 'Sample String', 0 |
|
|
|
|
|
.long 0x89ABCDEF |
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
(«меньшие») байты. |
|
|
|
|
|
|
|
|
|
||||||||||||||
_TEXT ends |
|
|
|
|
|
|
|
|
|
|
.ascii 'Sample String' |
|
|
|
|
|
|
|
|
|
|
||||||||||
end start |
|
|
|
|
|
|
|
|
|
|
.byte 0 |
|
|
|
В некоторых вычислительных архитектурах принят более «человеческий» порядок записи |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
чисел, когда порядок перечисления байтов в словах (или двойных словах) совпадает с |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
.end start |
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
порядком перечисления разрядов (бит) в числе. Такой порядок называется «Big-Endian» — |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
по меньшему адресу размещаются старшие байты. Представление при этом зависит от |
|||||||||||||
|
0100 |
═ gE#☻∩═½ёSample String......... |
|
|
|
|
размера данных, для которых применяется big-endian; например, для 16ти разрядных чисел |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
дамп выглядел бы так: |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
04030201 |
|
08070605 |
|
000B0A09 |
|
- в виде списка двойных слов |
|||||||||||
|
|
|
═ |
g |
E |
# |
☻ |
∩ |
═ |
½ ё |
S a |
m p |
l e |
|
|
|
|
||||||||||||||
|
0100 |
cd 20 67 45 23 01 ef cd ab 89 53 61 6d 70 6c 65 |
|
0201 |
0403 |
0605 |
0807 |
0A09 |
000B |
- в виде списка слов |
|||||||||||||||||||||
|
|
|
S |
t |
r |
i |
n |
g . . . . . . . . . |
|
02 |
01 |
04 |
03 |
06 |
05 |
08 |
07 |
0A |
09 |
00 |
0B |
- в виде списка байт |
|||||||||
|
0110 |
20 53 74 72 69 6e 67 00 00 00 00 00 00 00 00 00 |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Последний вариант используют реже, так как с точки зрения человека «перестановки» |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
═ |
E g |
|
☻ # |
═ ∩ |
|
ё ½ |
|
a S |
p m |
e l |
|
|
|
устраняются лишь для чисел ограниченной разрядности и только лишь размещаемым по |
||||||||||||||
|
0100 |
20cd 4567 0123 cdef 89ab 6153 706d 656c |
|
|
|
выровненным адресам; умножим, к примеру, на 10016 с переносом разрядов: |
|||||||||||||||||||||||||
|
|
|
S |
r t n i . g . . . . . . . . |
|
|
|
03020100 |
|
07060504 |
|
0B0A0908 |
|
- в виде списка двойных слов |
|||||||||||||||||
|
0110 |
5320 7274 6e69 0067 0000 0000 0000 0000 |
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
0100 |
0302 |
0504 |
0706 |
0908 |
0B0A |
- в виде списка слов |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
00 |
03 |
02 |
05 |
04 |
07 |
06 |
09 |
08 |
0B |
0A |
- в виде списка байт |
|
|
|
|
E g ═ ═ ∩ ☻ # a S ё ½ e l p m |
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
|
||||||||||||
|
0100 |
456720cd cdef0123 615389ab 656c706d |
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
с точки зрения разработчиков самой вычислительной системы удобнее использовать little- |
||||||||||||||||||||||||||
|
|
|
r t S |
|
. g n i . . . . . . . . |
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
endian, так как в нем предполагаются совпадающие порядки перечислений и слов и |
|||||||||||||||||||||||
|
0110 |
72745320 00676e69 00000000 00000000 |
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
разрядов (тот же пример с умножением для little-endian): |
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03020100 |
|
07060504 |
|
0B0A0908 |
|
- в виде списка двойных слов |
|||||||
|
e l p m a S ё ½ ═ ∩ ☻ # E g |
═ |
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
0100 |
0302 |
0504 |
0706 |
0908 |
0B0A |
- в виде списка слов |
|||||||||||||||||||||
|
65 6c 70 6d 61 53 89 ab cd ef 01 23 45 67 20 cd |
0100 |
|
|
|||||||||||||||||||||||||||
|
|
|
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
- в виде списка байт |
||||||||||||||||
|
. . . . . . . . . g n i r t S |
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
|
|||||||||||||||
|
00 00 00 00 00 00 00 00 00 67 6e 69 72 74 53 20 |
0110 |
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Режимы работы процессоров семейства i8086+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
• В универсальных ЦПУ обычно используют пул регистров общего |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
«Истинный 64х-разрядный» режим |
|||||||||||||||||||||||||||||||
|
назначения (РОН), которые могут быть использованы как в качестве |
||||||||||||||||||||||||||||||
|
адресных регистров, так и регистров данных. |
|
|
|
|
|
|
(страничная адресация) |
|
|
|
|
|||||||||||||||||||
• Разрядность регистров общего назначения, шины даных и шины |
|
|
|
|
|
Защищенный режим i80386+ |
|||||||||||||||||||||||||
|
адресов в общем случае различается. |
|
|
|
|
|
|
|
|
|
|
Подрежим |
(селектор:смещение + страничная адресация) |
||||||||||||||||||
• Если разрядность ША превышает разрядность регистров общего |
|
|
|
|
Виртуальный i8086 (V86) |
||||||||||||||||||||||||||
|
назначения, то необходимо комбинировать содержимое нескольких |
поддержки старых |
|
|
|
|
(сегмент:смещение + страничная адресация) |
||||||||||||||||||||||||
|
регистров (возможно, используя помимо РОН еще и специальные |
режимов «IA-32e» |
|
|
|
|
|||||||||||||||||||||||||
|
|
Защищенный режим i80286 |
|||||||||||||||||||||||||||||
|
регистры), для получения реально используемого адреса (т.н. |
|
|
|
|
(64х-разрядный |
|
||||||||||||||||||||||||
|
|
|
|
|
|
(селектор:смещение) |
|||||||||||||||||||||||||
|
физического). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
для ОС и |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Режим реальных адресов i8086 «A20 Enabled» |
||||||||
• Фиксированные схемы преобразования адресов; обычно реализуется |
32х-разрядный для |
|
|
|
|
||||||||||||||||||||||||||
|
с применением специализированных регистров (ACP, сегментные |
приложений) |
|
|
|
|
(сегмент:смещение) |
||||||||||||||||||||||||
|
регистры и т.п.), задающих базовый адрес, который автоматически |
|
|
|
|
Режим реальных адресов i8086 |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
прибавляется (иногда с масштабированием) к адресу, указанному в |
|
|
|
|
|
|
|
|
|
(сегмент:смещение) |
||||||||||||||||||||
|
программе. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Защищенный режим i80386+ |
|||||
• Управляемые схемы преобразования адресов; для этого используют |
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
(селектор:смещение + страничная адресация) |
||||||||||||||||||||||||||
|
специальные структуры данных (размещенные обычно в |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
«IA-32» |
|
|
|
Виртуальный i8086 (V86) |
|||||||||||||||
|
физической оперативной памяти, реже в специальной области |
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
процессора): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(сегмент:смещение + страничная адресация) |
|
|
• Сегментная (сегмент переменного, обычно большого размера; |
Режим |
|
|
|
|
Защищенный режим i80286 |
||||||||||||||||||||||||
|
адресация в пределах сегмента непрерывна; могут |
|
|
|
|
|
|
совместимости |
|
(селектор:смещение) |
|||||||||||||||||||||
|
перекрываться в физической памяти). |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Режим реальных адресов i8086 «A20 Enabled» |
|||||||||||
|
• Страничная (странница фиксированного размера, обычно |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(сегмент:смещение) |
|||||||||||||||||
|
небольшого 0.5-8 К, обычно выровнены по адресам, кратным |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
размеру страницы). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Режим реальных адресов i8086 |
|||||
|
• Сегментно-страничная (комбинированная схема, когда для |
|
|
|
|
|
|
|
|
|
|
|
|
|
(сегмент:смещение) |
||||||||||||||||
|
каждого сегмента описывается своё страничное преобразование; |
4 PB (252) |
|
|
|
4 GB (232) |
16 MB (224) 1 MB (220) |
||||||||||||||||||||||||
|
улучшает управление сегментами в физической памяти). |
|
|
|
|
|
|
|
|
|
|
|
|
• Логический адрес |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
адрес, которым оперирует программист; |
|||
|
Эффективный (логический) адрес |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
(программа) |
15 0 15 0 |
15 0 15 0 |
|
15 0 31 |
0 |
|
15 0 31 |
0 |
|
15 0 63 47 |
0 |
|
• Эффективный адрес |
|||||||||||||||||
|
|
|
SSSS |
: |
OOOO |
|
SSSS |
: |
OOOO |
|
|
SSSS |
: |
OOOO OOOO |
|
|
SSSS |
: |
OOOO OOOO |
|
SSSS |
: |
ssss OOOO OOOO OOOO |
|
логический адрес, вычисленный УУ с учетом режима |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(сегмент) |
|
|
(селектор) |
(селектор) |
(селектор) |
|
(селектор) |
|
|
адресации; |
|
|
|||
|
|
|
|
|
|
• Физический адрес |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сегментное |
|
Сегментное |
|
Сегментное |
|
Сегментное |
|
Коррекция адреса |
|
адрес, который процессор устанавливает на шине |
|||||
|
преобразование преобразование |
преобразование |
преобразование |
|
|
|
адресов для чтения или записи данных в ОЗУ или при |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
обмене данными с устройствами; |
|
|
Линейный адрес |
|
|
|
|
32 23 |
0 |
63 |
47 |
0 |
63 |
47 |
0 |
• Преобразвание адреса |
|
||
(только для УУ процессора) |
|
FFFF FFFF |
SSSS FFFF FFFF FFFF |
ssss FFFF FFFF FFFF |
1) реализовано в УУ процессора, а не АЛУ (включая |
|||||||||||
|
|
|
|
|
|
многие операции адресной арифметики — |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
индексирование, масштабирование и т.п.) |
||
|
|
|
|
|
|
Страничное |
|
Страничное |
|
Страничное |
|
2) выполняется при каждом обращении к внешним |
||||
|
|
|
|
|
|
|
|
|
данным (выборке инструкции, считывании каждого |
|||||||
|
|
|
|
|
|
преобразование |
преобразование |
преобразование |
операнда и т.п.) |
|
|
|||||
Физический адрес |
19 |
0 |
23 19 |
0 |
32 23 |
0 |
63 |
51 |
0 |
63 |
51 |
0 |
Легенда: |
i8086 |
i80286 |
|
(шина) |
|
|
|
|||||||||||||
|
|
|
|
|||||||||||||
|
F FFFF |
FF FFFF |
FFFF FFFF |
000F FFFF FFFF FFFF |
000F FFFF FFFF FFFF |
|
i80386..i80686 |
x64 (AMD64, EM64T) |
||||||||
|
|
|
||||||||||||||
|
|
1 MB |
|
16 MB |
|
4 GB |
|
|
4 PB |
|
|
4 PB |
|
|
|
|