МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Процессоры. История развития. Структура. Архитектура

    процессор переходит к выполнению команды, считанной по физическому адресу

    FFFFFFF0h. Сброс переводит процессор в реальный режим и устанавливает

    значения некоторых регистров:

    FLAGS = 0002h и биты VM и RF его расширения обнуляются;

    в регистре CR0 обнуляются биты PG, TS, EM, MP и РЕ;

    CS = F000h (база устанавливается FFFF0000h, лимит – 0FFFFh);

    DS = ES = SS = FS = GS = 0000h

    Регистр DH после сброса содержит идентификатора процессора Component

    Id (03-386, 04-486, 05-Pentium, 06-Pentium Pro или Pentium II), DL – номер

    модели (Revision Id).

    Только после сброса и до первой команды межсегментного перехода или

    вызова на шине адреса в реальном режиме биты A[20:31] в циклах выборки

    команд имеют единичное значение. Из этого следует, что по крайней мере на

    начальный период времени после сигнала RESET компьютер должен иметь образ

    BIOS в адресах FFFFFFF0-FFFFFFFFh, в то время, как в РС 8086/88 имели образ

    под границей 16-го мегабайта (FFFFFFh). Перемещение BIOS из первого

    мегабайта памяти в режиме нормальной работы невозможно, поскольку векторы

    прерывания, ссылающиеся на сервисы BIOS, в реальном режиме могут

    адресоваться только к памяти в диапазоне адресов 0-0FFFFFh (0-10FFEF) при

    открытом вентиле Gate A20).

    Если во время спада сигнала RESET на определенном входе процессора

    удерживать низкий уровень сигнала, процессор начнет выполнять внутренний

    тест BIST (Built-In Self-Test). Тест для 386-го и 486-го процессоров

    выполняется примерно за 2 в 20-ой степени тактов, что занимает десятки

    миллисекунд. По окончанию самотестирования процессор начинает работу, как

    после обычного сброса, а регистр EAX содержит сигнатуру результата

    тестирования. Об успешном выполнении теста свидетельствует нулевое значение

    сигнатуры.

    2.1.4. Ввод-вывод

    Как и 8086, 32-разрядные процессоры позволяют адресовать до 64К однобайтных

    или 32К двухбайтных регистров в пространстве, отдельном от памяти.

    Дополнительно имеется возможность обращения к 32-битным портам. При

    операциях ввода-вывода линии A[16:31] не используются. Адрес устройства

    задерживается либо в команде (только младший байт, старший – нулевой), либо

    берется из регистра DX (полный 16-битытный адрес). Команды ввода-вывода

    вызывают шинные циклы с активными сигналами IORD#, IOWR#. Строковые команды

    обеспечивают блочный ввод-вывод со скоростью, превышающей аналогичные

    операции со стандартным контроллером DMA. В адресном пространстве ввода-

    вывода область 0F8-0FF зарезервирована для использования сопроцессором (при

    обращении к сопроцессору 386 выставляет единицу на линии А31 шины адреса,

    что используется для упрощения дешифрации адресов).

    В защищенном режиме инструкции ввода-вывода являются

    привилегированными. Это означает, что они могут исполнятся задачами только

    с определенным уровнем привилегий, определяемым полем IOPL регистра флагов

    или битовой картой разрешения ввода-вывода (I/O Remission Bitmap),

    хранящийся в сегменте состояния задачи. Несанкционированная попытка

    выполнения этих инструкций вызовет исключение 13 – нарушение защиты

    (знаменитое сообщение “General Protection Error ”).

    2.1.5. Режим системного управления SMM

    Современные модели 32-разрядных процессоров (начиная с некоторых

    модификаций 386-го и 486-го), кроме обычных режимов – реального,

    защищенного и режима V86, - имеют дополнительный режим системного

    управления SMM (System Management Mode). Этот режим предназначен для

    выполнения некоторых действий с возможностью их полной изоляции от

    прикладного программного обеспечения и даже операционный системы. Главным

    образом, этот режим предназначен для реализации системы управления

    энергопотреблением.

    В режим SMM процессор может войти только по сигналу на входе SMI#

    (System Management Interrupt), более совершенные процессоры могут войти в

    SMM и по приему соответствующего сообщения по шине APIC. Сигнал для

    процессора является запросом прерывания с наивысшим приоритетом. Обнаружив

    активный сигнал (низкий уровень) SMI#, процессор по завершении текущей

    инструкции и выгрузки буферов записи переключается в режим SMM, о чем

    свидетельствует его выходной сигнал SMIACT#. Сразу при входе в SMM

    процессор сохраняет свой контекст – почти все регистры – в специальной

    памяти SMRAM. Эта память является выделенной областью физической памяти,

    доступ к которой обеспечивается внешними (по отношению к процессору)

    схемами в шинных циклах обращения к памяти только при наличии сигнала

    SMIAKT#. После сохранения контекста процессор переходит к выполнению

    обработчика SMI, который расположен в той же памяти SMRAM. Обработчика

    представляет собой последовательность обычных инструкций, исполняемых

    процессором в режиме, напоминающем реальный. При входе в режим SMM

    автоматически запрещаются аппаратные прерывания (включая и немаскируемые) и

    не генерируются исключения, так что действия процессора однозначно

    определяются программой обработчика SMI. Процедура обработки завершается

    инструкцией RSM, по которой процессор восстанавливает свой контекст из

    образа, хранящегося в SMRAM, и возвращается в обычный режим работы.

    При возврате из SMM возможны некоторые варианты, заказанные

    обработчиком (в пределах возможности SMM данного процессора). Во-первых,

    обработчик может программно внести изменения в образ контекста процессора,

    и при его восстановлении процессор может вернуться не в то состояние, в

    котором произошло SMI. Во-вторых возможен выбор варианта для случая, когда

    прерывание SMI возникло во время останова процессора по инструкции HALT:

    можно вернуться снова на инструкцию останова, а можно перейти к выполнению

    следующей за ней инструкции. В-третьих, процессоры, начиная с Pentium

    второго поколения (и Enhanced 486 фирмы AMD), поддерживают возможность

    рестарта (повторного выполнения) инструкции ввода-вывода, предшествующей

    появлению сигнала SMI#.

    Возможность рестарта инструкции ввода-вывода является расширением

    режима SMM. Ее используют, например, когда прикладная программа (или

    системный драйвер) пытается обратиться операцией ввода-вывода к

    периферийному устройству, находящемуся в “спящем” режиме. Системная логика

    должна в этом случае выработать сигнал SMI# раньше сигнала RDY#,

    завершающего шинный цикл рестартуемой инструкции ввода-вывода. Обработчик

    SMI “разбудит” устройство, после чего операции ввода-вывода рестартует, и

    прикладное ПО (или драйвер) “не заметит”, что устройство пребывало в

    спячке. Таким образом, управление потреблением может быть организованно на

    уровне BIOS способом, совершенно “прозрачным” для программного обеспечения

    (в том числе и ОС). Прозрачность SMM обеспечивается следующими свойствами

    режима:

    . возможность только аппаратно входа в SMM,

    . исполнением кода SMM в отдельном адресном пространстве,

    . полным сохранением состояния прерванной программы в области SMRAM,

    . запретом обычных прерываний,

    . восстановлением состояния прерванной задачи по выходу из режима SMM.

    Память SMRAM должна быть физически или логически выделенной областью

    размером от 32 Кб (минимальные потребности SMM) до 4 Гб. SMRAM

    располагается, начиная с адреса SMIBASE (по умолчанию 30000h), и

    распределяется относительно адреса SMIBASE следующим образом:

    . FE00h-FFFFh (3FE00h-3FFFFh) – область сохранения контекста

    (распределяется, начиная со старших адресов по направлению к

    младшим). По прерыванию SMI сохраняются практически все регистры

    процессора, включая программно невидимые регистры CR1, CR2 и CR4, а

    также скрытые регистры дескрипторов для CS, DS, ES, FS, GS и SS.

    Автоматическое сохранение не производится для регистров DR5-DR0, TR7-

    TR3 и регистров FPU;

    . 8000h (38000h) – точка входа в обработчик (SMI Handler);

    . 0-7FFFh (30000h-37fffh) – свободная область.

    2.1.6. Расширение ММХ

    Расширение ММХ ориентированно на мультимедийное, 2D и 3D-графическое и

    коммуникационное применение. Основная идея расширения MMX заключается в

    одновременной обработки нескольких элементов данных за одну инструкцию –

    так называемая технология SIMD (single Instruction – Multiple Data).

    Расширение ММХ использует новые типы упакованных 64-битных данных:

    . упакованные байты (Packed byte) – восемь байт;

    . упакованные слова (Packed word) – четыре слова;

    . упакованные двойные слова (Packed doubleword) – два двойных слова;

    . учетверенное слово (Quadword) – одно слово.

    Эти типы данных могут специальным образом обрабатываться в регистрах

    ММХ0-ММХ7, представляющих собой младшие биты стека 80-битных регистров FPU.

    Как и регистры FPU, эти регистры не могут использоваться для адресации

    памяти, совпадение регистров FPU и ММХ накладывает ограничения на

    чередование кодов FPU и ММХ – забота об их независимости лежит на

    программисте приложений ММХ.

    Еще одна особенность технологии ММХ – поддержка арифметики с насыщением

    (saturating arithmetic). Ее отличие от обычной арифметики с циклическим

    переполнением (wraparound mode) заключается в том, что при возникновении

    переполнения в результате фиксируется максимальное возможное значение для

    используемого типа данных, а перенос игнорируется. В случае

    антипереполнения в результате фиксируется минимальное возможно значение.

    Граничные значения определяются типом (знаковые или беззнаковые) и

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

    вычисления цветов в графике.

    В систему команд введено 57 дополнительных инструкций для одновременной

    обработки нескольких единиц данных. Одновременно обрабатываемое 64-битное

    слово может содержать как одну единицу обработки, так и 8 однобайтных, 4

    двухбайтных или 2 четырехбайтных операнда. Новые инструкции включают

    следующие группы:

    . арифметические (Arithmetic Instructions), включающие сложение и

    вычитание в разных режимах, умножение и комбинацию умножения и

    сложения;

    . сравнение (Comparison Instructions) элементов данных на равенство

    или по величине;

    . преобразование форматов (Conversion Instructions);

    . логические (Logical Instructions) – И, И-НЕ, ИЛИ и Исключающее ИЛИ,

    выполняемые над 64-битными операндами;

    . сдвиги (Shift Instructions) – логические и арифметические;

    . пересылки данных (Data Transfer Instructions) между регистрами ММХ и

    целочисленными регистрами или памятью;

    . очистка ММХ (Empty MMX State) – установка признаков пустых регистров

    в слове тегов.

    Инструкции ММХ не влияют на флаги условий.

    Регистры ММХ, в отличии от регистров FPU, адресуются физически а не

    относительно значения TOS. Более того, любая инструкция ММХ обнуляет поле

    TOS регистра состояния FPU. В слове тегов свободному регистру соответствует

    комбинация “11”, остальные комбинации указывают только на занятость

    регистра. После каждой операции ММХ биты тегов используемого регистра

    назначения обнуляются. Неиспользуемые в ММХ биты [79:64] регистров FPU

    заполняются единицами, так что ошибочное использование данных ММХ

    инструкций FPU приведет к исключению.

    Инструкции ММХ не порождают новых исключений. Исключения при их

    выполнении могут возникать только при нарушении границ при обращениях к

    памяти (данные и инструкции). Однако если предшествующая инструкция FPU

    породила условие исключения, то оно произойдет при выполнении инструкции

    ММХ. После его обработки инструкция ММХ может быть благополучна исполнена.

    Инструкции ММХ доступны из любого режима процессора. При переключении

    задач необходимо следить за корректностью сохранения контекста, как и при

    работе с FPU.

    Часто чередование годов FPU и ММХ может снизить производительность за

    счет необходимости сохранения и восстановления весьма объемного контекста

    FPU.

    2.1.7. Внутренний кэш

    Внутренне кэширование обращений к памяти применяется в процессорах, начиная

    с 486-го. С кэшированием связаны новые функции процессоров, биты регистров

    и внешние сигналы.

    Процессоры 486 и Pentium имеют внутренний кэш первого уровня, в Pentium

    Pro и Pentium II имеется и вторичный кэш. Процессоры могут иметь как единый

    кэш инструкций и данных, так и общий. Выделенный кэш инструкций обычно

    используется только для чтения. Для внутреннего кэша обычно используется

    наборно-ассоциативная архитектура.

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

    первых процессоров 486 – только Write Through (сквозная запись) – полностью

    программно-прозрачная. Более поздние модификации 486-го и все старшие

    процессоры позволяют переключаться на политику Write Back (обратная

    запись).

    Работу кэша рассмотрим на примере четырехканального наборно-

    ассоциативного кэша процессора 486, его физическая структура приведена на

    рис. 3.1.7. Кэш является несекторированным – каждый бит достоверности

    (Valid bit) относится к целой строке, так что стока не может являться

    “частично достоверной”.

    Работу внутренней кэш-памяти характеризуют следующие процессы:

    обслуживание запросов процессора на обращение к памяти, выделение и

    замещение строк для кэширования областей физической памяти, обеспечение

    согласованности данных внутреннего кэша и оперативной памяти, управление

    кэшированием.

    Любой внутренний запрос процессора на обращение к памяти направляется

    на внутренний кэш. Теги четырех строк набора, который обслуживает данный

    адрес, сравниваются со старшими битами запрошенного физического адреса.

    Если адресуемая область представлена в строке кэш-памяти (случая попадания

    –cache hit), запрос на чтение обслуживается только кэш-памятью, не выходя

    на внешнюю шину. Запрос на запись модифицирует данную строку, и в

    зависимости от политики записи либо сразу выходит на внешнюю шину (при

    сквозной записи), либо несколько позже (при использовании алгоритма

    обратной записи).

    Рис 3.1.7. Структура первичного кэша процессора 486

    В случае промаха (Cache Miss) запрос на запись направляется только на

    внешнюю шину, а запрос на чтение обслуживается сложнее. Если этот зарос

    относится к кэшируемой области памяти, выполняется цикл заполнения целой

    строки кэша – все 16 байт (32 для Pentium) читаются из оперативной памяти и

    помещаются в одну из строк кэша, обслуживающего данный адрес. Если

    затребованные данные не укладываются в одной строке, заполняется и

    соседняя. Заполнение строки процессор старается выполнить самым быстрым

    способом – пакетным циклом с 32-битными передачами (64-битными для Pentium

    и старше).

    Внутренний запрос процессора на данные удовлетворяется сразу, как

    только затребованные данные считываются из ОЗУ – заполнение строки до конца

    может происходить параллельно с обработкой полученных данных. Если в

    наборе, который обслуживает данный адрес памяти, имеется свободная строка

    (с нулевым битом достоверности), заполнена будет она и для нее установится

    бит достоверности. Если свободных строк в наборе нет, будет замещена

    строка, к которой дольше всех не было обращений. Выбор строки для замещения

    выполняется на основе анализа бит LRU (Least Recently Used) по алгоритму

    “псевдо-LRU”. Эти биты (по три на каждый из наборов) модифицируются при

    каждом обращении к строке данного набора (кэш-попадании или замещении).

    Таким образом, выделение и замещение строк выполнятся только кэш-

    промахов чтения, при промахах записи заполнение строк не производится. Если

    затребованная область памяти присутствует в строке внутреннего кэша, то он

    обслужит этот запрос. Управлять кэшированием можно только на этапе

    заполнения строк; кроме того, существует возможность их аннулирования –

    объявления недостоверными и очистка всей кэш-памяти.

    Очистка внутренней кэш-памяти при сквозной записи (обнуление бит

    достоверности всех строк) осуществляется внешним сигналом FLUSH# за один

    такт системной шины (и, конечно же, по сигналу RESET). Кроме того, имеются

    инструкции аннулирования INVD и WBINVD. Инструкция INVD аннулирует строки

    внутреннего кэша без выгрузки модифицированных строк, поэтому ее

    неосторожное использование при включенной политике обратной записи может

    привести к нарушению целостности данных в иерархической памяти. Инструкция

    WBINVD предварительно выгружает модифицированные строки в основную память

    (при сквозной записи ее действие совпадает с INVD). При обратной записи

    очистка кэша подразумевает и выгрузку всех модифицированных строк в

    основную память. Для этого, естественно, может потребоваться и значительное

    число тактов системной шины, необходимых для проведения всех операций

    записи.

    Аннулирование строк выполняется внешними схемами – оно необходимо в

    системах, у которых в оперативную память запись может производить не только

    один процессор, а и другие контроллеры шины – процессор или периферийные

    контроллеры. В этом случае требуются специальные средства для поддержания

    согласованности данных во всех ступенях памяти – в первичной и вторичной

    кэш-памяти и динамического ОЗУ. Если внешний (по отношению к

    рассматриваемому процессору) контроллер выполняет запись в память,

    процессору должен быть подан сигнал AHOLD. По этому сигналу процессор

    немедленно отдает управление шиной адреса A[31:4], на которой внешним

    Страницы: 1, 2, 3, 4, 5


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.