Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка.doc
Скачиваний:
617
Добавлен:
22.05.2015
Размер:
2.56 Mб
Скачать

2.3.7 Команды с операндами, расположенными в памяти

Как мы уже знаем, в машинном коде для идентификации регистровых операндов команды используется байт Mod R/M, с помощью которого можно закодировать 28 = 256 различных операндов команды. При этом сама команда кодируется относительно просто и занимает всего 2 байта. Однако в системе команд процессоров Intel предусмотрено довольно много режимов адресации операндов, находящихся в памяти. В результате кодирование команды и ее операндов с помощью байта Mod R/M существенно усложняется, что вызывает увеличение длины команды. Этот факт неоднократно вызывал резкую критику системы команд процессоров Intel сторонниками архитектуры процессоров с усеченным набором команд (RISC).

Вопросы для самопроверки

  1. Какие регистры общего назначения используются в архитектуре IA-32?

  2. Каково предназначение указателя команд?

  3. Для чего служат управляющие флаги регистра флагов?

  4. Перечислите флаги состояния регистра флагов?

  5. Какие управляющие регистры предусмотрены в архитектуре IA-32?

  6. Какие дополнительные функциональные модули предусмотрены в кристалле микропроцессора IA-32?

  7. Для чего предназначено расширение MMX?

  8. Для чего предназначено расширение 3DNow! И SSE?

  9. Для чего предназначено расширение AVX?

  10. Для чего предназначено расширение AEX?

  11. Каковы типы адресации используются в 32-разрядных процессорах Intel и AMD?

  12. Для чего используется базовая и индексная адресация?

  13. Каким образом организуется базово-индексная адресация?

  14. Какие регистры общего назначения можно использовать для индексной адресации?

  15. Какие регистры общего назначения можно использовать для базовой адресации?

  16. Какие существуют группы команд в системе команд микропроцессоров IA-32?

  17. Какие поля входят в формат команды микропроцессоров IA-32?

  18. Какую информацию хранит поле r/m команд микропроцессоров IA-32?

Глава 3. Организация многоуровневой памяти

3.1 Принцип построения многоуровневой памяти

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

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

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

Время доступа зависит от объема и типа используемой памяти. В этих условиях, построив двухуровневую память, в которой помимо большой основной памяти имеется небольшая более быстрая буферная память, можно пересылать данные для обработки в буферную память, там их обрабатывать, используя память с меньшим временем доступа по сравнению с основной памятью, а после обработки - отправлять обратно в основную. Если удается организовать вычисления так, что за время обработки одной порции данных можно доставить из основной памяти в буферную другую порцию данных, то обработка выполняется с использованием только быстрой памяти. Ясно, что так организовать вычисления удается далеко не всегда. Поэтому возможны простои процессора в ожидании необходимых данных из основной памяти. Однако для ряда задач совмещение обработки данных в буферной памяти и пересылки данных между буферной и основной памятью дает эффект сокращения времени доступа в память. Иными словами, память для процессора представляется как память большого объема, равного объему основной памяти, имеющая быстродействие такое, как у быстродействующей памяти малого объема.

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

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

В процессорах применяются три механизма работы с памятью, основанные на использовании локализуемости обрабатываемых данных: кэш-память, страничная или сегментная память и расслоение памяти.