Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (1186253), страница 72
Текст из файла (страница 72)
SSE 3 является не просто расширениемSSE 2 —- эта технология не только добавляет новые инструкции, онапозволяет облегчить и автоматизировать процесс оптимизации готовых приложений средствами компилятора. Иначе говоря, разработчику программного обеспечения не надо будет переписывать кодпрограммы, необходимо будет только перекомпилировать ее.Одним из важнейших, с точки зрения производительности, дополнений можно считать увеличенный до 1 Мбайт кэш второгоуровня Объем кэш памяти первого уровня также был увеличен до16 Кбайт.Prescott имеет улучшенный механизм предвыборки данных(опережающая загрузка), и, кроме того, реализует улучшенную версию технологии HyperThreading.
В новую версию включено множество особенностей, способных оптимизировать многопоточное выполнение различных операций. Единственный недостаток новой368Глава 4. Персональные компьютерыверсии заключается в необходимости перекомпиляции программного обеспечения и обновления операционной системы.Для увеличения рабочей частоты будущих процессоров, ядроPrescott имеет увеличенную с 20 до 31 ступени длину конвейераУвеличение длины конвейера негативно сказывается на производительности в случае неправильного предсказания ветвлений.
Прощеговоря, если предсказание будет выполнено неправильно, то «сбрасывается» весь колвейер, и все операции будут повторены снова.Для компенсации увеличения длины конвейера была улучшена технология предсказания ветвлений.4.3. Режимы процессора. Система команд реальногорежима процессоров 180x86. Интерпретацияв терминах Ассемблера (MASM)Все 32-разрядные процессоры Intel (и совместимые с ними) начиная с 80386-го могут выполнять программы в нескольких режимах.
Режимы процессора предназначены для выполнения программв различных средах; в разных режимах возможности МП неодинаковы, потому что команды выполняются по-разному.Режимы процессораВ зависимости от режима процессора изменяется схема управления памятью системы и задачами. Процессоры могут работать втрех режимах:• реальном;• защищенном;• виртуальном реальном режиме (реальном внутри защищенного).Реальный режим. В первоначальном IBM PC использовалсяпроцессор J8086, который мог выполнять 16-разрядные команды,применяя 16-разрядные внутренние регистры, и адресовать толькоI Мбайт (220 байт) памяти, используя 20 разрядов для адреса. Всепрограммное обеспечение PC первоначально было предназначенодля этого процессора; оно было разработано на основе 16-разрядной системы команд и модели памяти объемом 1 Мбайт.
Например, DOS, все программное обеспечение DOS, Windows от 1.x до3.x и все приложения для Windows от 1.x до 3.x написаны в расчете4.3. Режимы процессора. Система команд процессоров 180x86...369на 16-разрядные команды. Эти 16-разрядные операционные системы и приложения были разработаны для выполнения на процессоре i8086.Более поздние процессоры, например i80286, могли также выполнять те же самые 16-разрядные команды, что и первоначальныйi8086, но намного быстрее.
Другими словами, процессор i80286 былполностью совместим с первоначальным i8086. Шестнадцатиразрядный режим, в котором выполнялись команды процессоров J8086 иi80286, был назван реальным режимом. Все программы, выполняющиеся в реальном режиме, должны использовать только 16-разрядные команды, 20-разрядные адреса и поддерживаться архитектуройпамяти, рассчитанной на емкость до 1 Мбайт.Для программного обеспечения этого типа обычно используетсяоднозадачный режим, т. е.
одновременно может выполняться только одна программа. Нет никакой встроенной защиты для предотвращения перезаписи ячеек памяти одной программы или дажеоперационной системы другой программой; это означает, что привыполнении нескольких программ вполне могут быть испорченыданные или код одной из них, а это может привести всю систему ккраху (или останову).Защищенный режим. Несмотря на то, что процессор i80286, каки i8086, является 16-разрядным, он (в отличие от последнего) можетработать в новом — защищенном — режиме и имеет аппаратурнуюподдержку многозадачных операционных систем, значительно ускоряющую и упрощающую процесс переключения задач. Эта поддержка активно используется всеми мультизадачными операционными системами и оболочками, разработанными для компьютераIBM PC.Адресная шина i80286 была увеличена с 20 до 24 разрядов, чтопривело к расширению адресного пространства с 1 до 16 Мбайт24(2 байт).
Новый метод адресации памяти позволил изолировать адресные пространства отдельных задач друг от друга. При этом прикладная программа, работающая в среде операционной системы,использующей защищенный режим, не может случайно или намеренно разрушить целостность самой операционной системы.В защищенном режиме программа может записывать данныетолько в те области памяти, которые выделены ей операционнойсистемой. Это повышает надежность работы мультизадачных и, вчастности, мультипользовательских операционных систем.
В последнем случае изолирование адресных пространств задач, принадлежащих отдельным пользователям, в хорошо спроектированноймультипользовательской операционной системе полностью исклю-370Глава 4. Персональные компьютерычает такую ситуацию, когда после запуска одним пользователем недостаточно отлаженной программы приходится перезапускать всюсистему.Следующие модели процессоров фирмы Intel — i80386, 180486 и180586 (Pentium) были 32-разрядными. Помимо расширения адресного пространства до величины в 4 Гбайта (232 байт) в них реализована концепция страничной виртуальной памяти, возможной только в защищенном режиме.Механизм страничной виртуальной памяти позволяет разместить часть оперативной памяти на диске.
При этом размер виртуальной памяти, предоставляемой программам, ограничивается размером свободного пространства на диске.Перечислим кратко основные преимущества, которые получаетпрограмма, работающая в защищенном режиме процессора:• возможность непосредственной адресации памяти за пределами первого мегабайта;• для процессоров 180x86 реализован механизм страничной виртуальной памяти, позволяющий программам работать с памятью, размер которой может быть много больше физическойоперативной памяти, установленной в компьютере;• аппаратная поддержка мультизадачности позволяет создаватьна основе процессоров, работающих в защищенном режиме,высокопроизводительные мультизадачные и мультипользовательские системы.Виртуальный реальный режим.
Помимо страничной виртуальнойпамяти в процессорах i80386 и более поздних реализован так называемый режим виртуального процессора 18086 или просто виртуальный режим. Этот режим реализуется в рамках защищенного режима(процессор может переключиться в виртуальный режим только из защищенного режима). В виртуальном режиме процессор способен выполнять программы, составленные для процессора 18086, находясь взащищенном режиме и используя аппаратные средства защищенногорежима: мультизадачность, изолирование адресных пространств отдельных задач друг от друга, страничная виртуальная память.Рассмотрим основные принципы функционирования процессоров 180x86 в реальном режиме.Реальный режим процессоров 80x86Это режим генерирования адресов, используемый процессором8086.
В этом режиме не может быть использована виртуальная память. Можно адресовать лишь до 1 Мбайт (220 байт) оперативной4.3. Режимы процессора. Система команд процессоров 180x86...371памяти, так как у процессора 8086 20-разрядная шина адреса. Таккак все регистры процессора 8086 являются 16-разрядными, дляпредставления 20-разрядного физического адреса памяти используется содержимое нескольких 16-разрядных регистров.Оперативную память при работе в этом режиме можно разбитьна логические блоки по 64 Кбайт, называемые сегментами, причемкаждый сегмент может начинаться с адреса, кратного 16 байт.
Таким образом, первый сегмент имеет начальный адрес 0, второй находится по адресу 16 (или 10 в шестнадцатеричной системе) и т. д.Несколько близко расположенных сегментов могут перекрываться.Это удобно при организации совместного доступа к командам иданным разными программами. Доступ к каждой ячейке в памятипроисходит путем указания значения регистра сегмента (см. далее),определяющего блок размером 64 Кбайт, и положения, или смещения, этого адреса внутри этого блока.Микропроцессор использует четыре регистра сегмента, приэтом каждый регистр имеет размер, равный одному слову (16 бит):• регистр сегмента команд cs (Code Segment), указывающий насегмент, содержащий текущую исполняемую программу;• регистр сегмента данных DS (Data Segment), указывающий наданные;• регистр дополнительного сегмента ES (Extra Segment), указывающий на дополнительные данные;• регистр сегмента стека SS (stack Segment), указывающий настек.У процессора 80386 и старше есть еще два сегментных регистра — FS и GS.Содержимое каждого из этих регистров однозначно связано сместом в памяти соответствующего сегмента.
Его адрес получаетсяприписыванием справа четырех двоичных нулей к значению сегмента, что соответствует умножению на 16 (или на 10 по основанию16). Полученное 20-битовое значение представляет собой адрес начала (или базовый адрес) сегмента в физической памяти. Для определения реального адреса команды или данных процессор добавляетзатем значение смещения к базовому адресу.Например, команда, подлежащая исполнению процессором вкаждый данный момент времени, определяется из значений двухрегистров: регистра cs, значение которого, будучи умножено на 16,дает адрес начала сегмента команд, и регистра указателя команд IP(instruction Pointer), указывающего положение соответствующей команды относительно начала сегмента команд.372Глава 4. Персональные компьютерыВ реальном режиме не существует никакого механизма защиты,так что любая программа может обратиться к произвольной ячейкепамяти в пределах 1 Мбайт, включая область экрана или областьрасположения операционной системы.Выделим два основных недостатка схемы адресации памяти реального режима:• ограниченное адресное пространство (до 1 Мбайта и еще примерно 64 Кбайта старшей области памяти для процессоров80286 и старше);• свободный доступ любых программ к любым областям данных, что представляет потенциальную опасность для целостности операционной системы.Описание форматов команд, данных, структуры памяти и процессора (см.