Андрей Газибаров


без тайни

Съдържание

Част I. Въведение
1.1. Архитектура на процесорната система
1.1.1. Преотстъпване на шината
1.1.2. Прекъсвания
1.1.3. Кеш-памет
1.2. Хардуерна архитектура на процесора
1.2.1. Класификация
Според размера на думата
Според начина на изпълнение на инструкциите
Според предназначението
Процесори и едночипови компютри
1.2.2. Инструкции
1.2.3. Конвейер
1.3. Софтуерна архитектура
1.3.1. Регистри
1.3.2. Стек
Част II. Базова архитектура
2.1. Фамилия I80x86/87. Въведение и история
2.2. Програмен модел на x86. Регистри с общо предназначение
2.3. Регистър на флаговете EFLAGS
2.4. Памет
2.4.1. Сегментен модел на паметта
Реален сегментен модел на паметта
Виртуален сегментен модел на паметта
2.4.2. Плосък модел на паметта
2.4.3 Странициране
Модел на странициране при I80386 и I80486
Модел на странициране при Pentium
Модел на странициране при Pentium Pro и Pentium II
Модел на странициране при Pentium III и Pentium 4
2.4.4. Виртуална памет
2.5. Типове данни
2.6. Ефективен адрес на операнда (ЕА)
2.6.1. Отместване на операнда
2.6.2. 16-битови адреси
2.6.3. 32-битови адреси
2.7. Сегментни регистри
2.8. Системни регистри
2.8.1. Регистри IDTR и GDTR
2.8.2. Регистри LDTR и TR
2.8.3. Регистър CR0
2.8.4. Регистър CR2
2.8.5. Регистър CR3
2.8.6. Регистър CR4
2.9. Система от инструкции
2.9.1. Префикси
2.9.2. Код на операция
2.9.3. Адресиране на операнд
2.9.4. Непосредствен операнд
Част III. Реален режим на работа
Част IV. Защитèн режим на работа
4.2. Нива на привилегированост
4.2.1. Регистриране нивото на привилегированост
4.2.2. Текущо ниво на привилегированост (CPL)
4.2.3. Заявено ниво на привилегированост (RPL)
4.2.4. Ефективно ниво на привилегированост
4.2.5. Ниво на привилегированост на описанието (DPL)
4.2.6. Ниво на привилегированост на В/И пространство (IOPL)
4.3. Селектори
4.4. Дескриптори
4.4.1. Дескриптори на неприсъстващи сегменти
4.4.2. Дескриптори на памет
Сегменти за данни
Сегменти за код
LDT и TSS
4.4.3. Дескриптори на изходи
4.5. Описания на страници
4.5.1. Елементи на таблицата на страниците
4.5.2. Елементи на каталога на страниците
4.5.3. Елементи на таблицата на каталозите
4.5.4. Разширения в режим PAE
4.5.5. Полета в елементите на стрàничните таблици
4.6. Защита
4.6.1. Проверка типа на дескриптора
4.6.2. Привилегировани инструкции
4.6.3. Достъп до данни
4.6.4.Подравняване на данните
4.6.5. Линейно изпълнение на инструкции
4.6.6. Предаване и връщане на управлението. Смяна на стековете
Пряко предаване на управлението
Предаване на управлението чрез изход
Превключване на стека
Връщане на управлението
Връщане на стека
4.6.7. Бързо извикване/връщане
SYSENTER/SYSEXIT
SYSCALL/SYSRET
4.6.8. Защита на вход-изхода
Карта за защита на входно-изходното пространство
Защита на IF
Защита на EFLAGS
4.7. Защита на ниво страница
4.8. Изключения
4.8.1. Класификация на изключенията
4.8.2. Резюме на изключенията
4.8.3. Детайлно описание на изключенията
4.9. Food For Thought
Част V. Режим V86
5.1. Същност
5.2. Влизане и напускане на режим V86. Прекъсвания
5.3. Защита чрез IOPL
5.3.1. Флагът IF. Виртуални прекъсвания
5.3.2. Инструкция INT. Пренасочване на прекъсванията
5.3.3. Инструкция IRET. Връщане от пренасочено прекъсване
5.3.4. Резюме
Част VI. Режим на управление на системата
6.1. Влизане в режим на управление на системата
6.2. Структура на SMM RAM
6.3. Излизане от режим на управление на системата
6.4. Прекъсвания в режим SMM
Част VII.  Многозадачност
7.1. Сегмент за състояние на задачата
7.2. Превключване на задача
7.3. Изключения при превключване на задача
Част VIII. Изчисления с плаваща запетая
8.1. Числа с плаваща запетая
8.1.1. Числа
8.1.2. Реални числа
8.1.3. Нечисла
8.2. Операции с плаваща запетая
8.2.1. Алгебрични операции
8.2.2. Закръгляне
8.2.3. Числени методи
8.2.4. Стеснени граници на данните за някои трансцендентни операции
8.3. Числени изключения
8.4. Регистри на I80x87
8.4.1. Стекови регистри
8.4.2. Контролна дума
8.4.3. Дума за състояние
8.4.4. Регистър за състояние на стека (TW)
8.4.5. Други регистри
8.5. Инструкции
8.5.1. Мнемоничен код
8.5.2. Инструкции
Аритметични инструкции
Инструкции за трансфер
8.5.3. Кодиране на инструкциите
8.6. Образ на състоянието на FPU в паметта
8.7. Емулатор за копроцесор на Borland
Част IX. Много данни – една инструкция
9.1. Програмен модел
9.1.1. Програмен модел на MMX технологията
9.1.2. Steaming SIMD Extensions (SSE/SSE2)
9.1.3. AMD 3DNow!
9.2. SIMD изчисления
9.2.1. Пакетирани и непакетирани данни
9.2.2. Операции с цели и с реални числа. Насищане
9.2.3. Деление и коренуване (3DNow!)
9.3. Контролен регистър MXCSR
9.4. Смесване на MMX код и код за I80x87
9.5. Съхраняване на пълната среда
9.6. Система от инструкции
Част X. 64-битови архитектури
10.1. Архитектурата IA-64
10.2. Архитектурата x86‑64
10.2.1. Режими на работа
10.2.2. Регистри
10.2.3. Сегментен модел на паметта
10.2.4. Модел на странициране на паметта
10.2.5. Сегментни дескриптори
Дескриптори на код
Дескриптори на данни
10.2.6. Дескриптори на изходи
10.2.7. Дескриптори на страници
10.2.8. Механизъм на смяна на стека
10.2.9. Бързо предаване на управлението
10.2.10. Многозадачност
10.2.11. Инструкции FXSAVE/FXRSTOR
10.2.12. Прекъсвания
10.2.13. Инструкции
10.2.14. Префикс REX
Част XI. Моделно-специфични регистри
Част XII. Кеш памет
12.1. Организация
12.1.1. Организация при I80486DX
12.1.2. Организация при Pentium+
12.2. Управление
12.2.1. Начини за управление на кеш-паметта
Глобално управление
Локално управление
Моментно управление
12.2.2. Методи за кеширане (типове памет)
12.2.3. Регистри за тип на паметта (MTRR)
12.2.4. Таблица за атрибути на страниците
12.2.5. Приоритет на типовете памет
12.3. Тестване на кеш-паметта
12.3.1. Тестване на кеш-паметта
12.3.2. Тестване на TLB
Част XIII. Настройка
13.1. Настройка на програми
13.1.1. Постъпково изпълнение
13.1.2. Точки на прекъсване
13.1.3. Реакция на няколко изключения
13.1.4. Флаг RF (Resume Flag) – маскиране на #DB
13.1.5. История на последните преходи
13.1.6. Трасиране на преходите
13.1.7. Други средства
13.2. Брояч на тактовете
13.3. Оценяване на производителността
13.3.1. Оценяване на производителността при процесор Pentium
13.3.2. Оценяване на производителността при фамилия P6
13.4. Оценяване на производителността при Pentium 4
13.4.1. Общи особености
13.4.2. Регистри за избор на събитие
13.4.3. Регистри за конфигуриране и управление на броячите
13.4.4. Филтриране на събития
13.4.5. Свързване на броячи
13.4.6. Негранични събития
13.4.7. Гранични събития
13.5. Прецизно отчитане на събития
13.5.1. Трасиране на преходите (BTS – Branch Trace Store)
13.5.2. Прецизно отчитане на събития (PEBS – Precise Event-Based Sampling)
Част XIV. Специални ресурси
14.1. Регистър IA32_MISC_ENABLE
14.2. Температурен контрол
14.2.1. Катастрофичен температурен детектор
14.2.2. Автоматичен контрол на работната честота
14.2.3. Софтуерен контрол на работната честота
14.3. Актуализиране на вътрешния микрокод
14.4. Локален контролер на прекъсванията (APIC)
14.4.1. Управление на локалния APIC
14.4.2. Обработка на прекъсвания
14.4.3. Локална векторна таблица (LVT). [Само]прекъсване
14.4.4. Обработка на грешки
14.4.5. Таймер
14.5. Контрол на машината
14.5.1. Контрол на машината при Pentium
14.5.2. Контрол на машината при P6+
Глобални контролни регистри
Регистри за съобщаване на грешки
Допълнителни регистри за състояние
Архитектурни кодове на грешки
Част XV. Инициализация и идентификация
15.1. Начално установяване
15.2. Инициализация и превключване в защитен режим
15.3. Странициране
15.4. Връщане в реален режим
15.5. Идентификация след RESET
15.6. Идентификация на старите процесори
Различаване на І8086 от І8088, І80186 от І80188
Различаване на І8086 от І80186
Различаване на І8086 от І80286
Различаване на І80х86 от V20
Различаване на І80286 от І80386 в реален режим
Различаване на І83086 от І80486
Различаване на І8087 и І80287 от І80387
15.7. Инструкция CPUID
15.7.1. Проверка за наличност
15.7.2. Общ формат
15.7.3. Производител на процесора
15.7.4. Идентификация на процесора
15.7.5. Поддържани функции
15.7.6. Информация за кеша (Intel)
15.7.7. Информация за кеша (AMD)
15.7.8. Сериен номер
15.7.9. Съобщение от производителя
15.7.10. Информация за захранващата енергия (AMD)
15.7.11. Адресируема памет (AMD)
Част XVI. Инструкции
16.1. Схема на представяне на инструкция
16.1.1. Обща схема
16.1.2. Кодиране на инструкция
16.1.3. Валидност на инструкцията
16.1.4. Време за изпълнение на инструкция
16.1.5. Данни за инструкция на SIMD устройството
16.1.6. Действие на инструкцията
16.1.7. Резултати от числена операция
16.1.8. Влияние върху флаговете
16.1.9. Изпълнимост на инструкцията
16.1.10. Изключения
16.2. Някои мнемоники
16.3. Инструкции на целочисленото устройство (CPU)
16.3.1. Аритметико-логически инструкции
16.3.2. Прехвърляне на данни
16.3.3. Десетична аритметика
16.3.4. Работа с битове
16.3.5. Изместване и ротация
16.3.6. Низови инструкции
16.4. Инструкции на управляващото устройство (MMU)
16.4.1. Префикси
16.4.2. Управление на изпълнението
16.4.3. Управление на процесора
16.4.4. Управление на режимите
16.4.5. Управление на кеш-паметта
16.5. Инструкции на устройството с плаваща запетая (FPU)
16.5.1. Прехвърляне на данни от/към копроцесора
16.5.2. Аритметични операции с плаваща запетая
16.5.3. Трансцендентни функции
16.5.4. Управление на копроцесора
16.6. Инструкции на устройството за обработка на много данни с една инструкция (SIMD)
16.6.1. Аритметични инструкции
16.6.2. Изместване и ротация
16.6.3. Статистически инструкции
16.6.4. Прехвърляне на данни
16.6.5. Управление на SIMD устройството
ПРИЛОЖЕНИЯ
П.1. Мерни единици за количество информация
П.2. История, създадена от Intel
П.2.1. Процесорът I4004
П.2.2. Процесорът I8080
П.3. Контролери на дънната платка на PC
П.3.1. Контролер за директен достъп до паметта
П.3.2. Контролер на прекъсванията
П.3.3. Програмируеми таймери
П.4. Трикове и съвети
П.4.1. Инструкция LEA: многофункционална инструкция
П.4.2. Превръщане на число в ASCII-символ
П.4.3. Превръщане на число в низ
П.4.4. По-точно деление
П.4.5. Колко дена има в месеца?
П.4.6. Изчисляване на десетичен и натурален логаритъм. Показателна функция 2x
П.5. Карти на инструкциите
П.5.1. Поведение на аритметичните флагове
П.5.2. Изключения
П.5.3. Карта на инструкциите
П.5.4. Инструкции с непосредствен операнд като КОП
П.5.5. Инструкции с КОП в адресния байт
П.5.6. Инструкции с КОП в младшите битове на адресния байт
П.5.7. Инструкции на копроцесора
П.5.8. Съответствия между хардуерни кодове и кодове на емулатора на Borland
Речник
Литература
Резюме и пълен текст
Резюме Пълен текст
 
  PDF, 3.6M Приложение, 18К