Защищенный режим процессоров Intel 80286/80386/80486© Александр Фролов, Григорий ФроловТом 4, М.: Диалог-МИФИ, 1993, 234 стр. 5.7. Процессор i80486В этом разделе мы очень кратко опишем последнее на момент написания данной книги достижение фирмы Intel - процессор i80486. Этот 32-разрядный быстродействующий процессор специально предназначен для работы мультизадачных операционных систем, таких как UNIX или OS/2. Процессор i80486 полностью совместим с более ранними моделями - i8086, i80286, i80386, но в тоже время обладает существенно более высоким быстродействием. Наиболее часто встречающиеся в программах команды выполняются за один машинный цикл. На кристалле процессора находится 8-килобайтный кэш оперативной памяти, обеспечивающий высокую производительность даже при использовании относительно медленной памяти. Кроме того, процессор i80486 содержит встроенный 32-разрядный арифметический сопроцессор, значительно увеличивающий скорость выполнения арифметических команд. С точки зрения прикладного программиста процессор i80486 практически не отличается от процессора i80386 (за исключением более высокой производительности). Все отличия касаются только системного уровня. Так как программирование процессора i80486 на системном уровне - достаточно сложный процесс, мы не станем описывать этот процессор во всех подробностях. Как правило, большинство программистов никогда не работают с системными регистрами процессоров i80386 и i80486, оставляя эту работу операционной системе или драйверам расширенной памяти. В процессоре i80486 стали определены некоторые, зарезервированные ранее в процессоре i80386, биты регистров CR0, CR3, EFLAGS, есть некоторые новшества в таблицах страниц, новое исключение и несколько новых команд. В регистре CR0 стали определены пять новых битов - NE, WP, AM, NW, CD. В регистре CR3 определены два новых бита - PCD и PWT. В регистре EFLAGS появился новый флаг AC (бит 18). Этот бит вместе с битом AM регистра CR0 контролирует проверку выравнивания объектов в памяти. Форматы системных регистров CR0 и CR3 для процессора i80486, а также регистра EFLAGS описаны в приложении. Новое исключение касается проверки выравнивания и имеет номер 17. Оно возникает при попытке обращения к данным, не выровненным в памяти. Для того, чтобы при обращении к не выровненному операнду в памяти произошло исключение контроля выравнивания, должны быть установлены флаг AC в регистре EFLAGS и бит AM в управляющем регистре CR0. Заметим, что исключение контроля выравнивания генерируется только в программах, работающих в третьем, непривилегированном кольце. Добавились три команды, предназначенные для использования прикладными программами - BSWAP, XADD, CMPXCHG, а также три новые системные команды, управляющие кэшем и TLB - INVD, WBINVD, INVLPG. Новые команды облегчают и ускоряют работу с семафорами, что очень важно для мультизадачных операционных систем. Есть также некоторые изменения в формате команды MOV, используемой для доступа к тестовым регистрам. Появились новые регистры для работы с кэшем. В целом можно отметить, что архитектура процессора i80486 не претерпела революционных изменений по сравнению с процессором i80386. Поэтому в большинстве случаев прикладной программист может считать, что процессор i80486 - это очень быстрый вариант процессора i80386. |