Процессор Intel

Автор работы: Пользователь скрыл имя, 23 Октября 2011 в 17:51, лекция

Краткое описание

Высокопроизводительный 32-х разрядный микропроцессор 80i86 ориентирован на эффективное выполнение программ в среде многозадачных ОС (типа Windows). Микропроцессор имеет 32-разрядные регистры и 32-х разрядные раздельные шины адреса и данных.

Содержимое работы - 1 файл

Архитектура ЭВМ.doc

— 1.20 Мб (Скачать файл)

      Информация, хранящаяся в каждой ячейке  БУП, представляется пятью полями:

  1. Однобитовое поле “Вход занят” (ВЗ). Единичное значение этого поля говорит о том, что ячейка занята и недоступна для новых записей.
  2. В поле RGr содержится номер логического регистра АРФ, для временной замены которого используется данная ячейка БУП. Это поле называется “Номер переименованного регистра”.
  3. В поле “Значение” хранится текущее содержимое регистра, номер которого указан в поле RGr.
  4. Однобитовое поле “Значение достоверно” (ЗD). Единичное значение этого поля подтверждает достоверность операнда, который находится в поле “Значение”. Если ЗD=0, то операнд еще не вычислен.
  5. Однобитовое поле “Последнее переименование” (ПП). Если в БУП несколько ячеек в поле RGr имеют один и тот же номер, т.е. ссылаются на один и тот же регистр в АРФ, то ПП=1 только у той ячейки, где находится последняя ссылка на данный регистр. Поле ПП введено из-за того, что регистры могут переименовываться многократно и необходимо знать, где находится последнее значение операнда.
 
 
 

Переупорядочивание  команд

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

       В основе переупорядочивания команд лежит использование окна команд, т.е. буферной памяти, куда помещаются все команды, прошедшие декодирование. Окно команд обеспечивает отсрочку передачи команд на исполнение до момента готовности операндов, а также нужную очередность завершения команд и загрузки их результатов в регистры АРФ. Окно команд может быть двух видов: централизованное и распределенное.

       Централизованное окно команд реализуется в виде табло (scoreboard). Табло представляет собой буферное запоминающее устройство, в котором хранится несколько последних извлеченных из памяти и декодированных команд, а также информация, необходимая для исполнения этих команд. Функциями табло является выявление команд, для исполнения которых уже доступны все необходимые операнды и ресурсы, и выдача таких команд на исполнение в соответствующие функциональные блоки. Табло можно рассматривать как систему предварительной диспетчеризации команд, наделенную функциями контроля выполнения команд.

    Все извлеченные из памяти команды после их декодирования и переименования регистров записываются в табло, с соблюдением порядка их следования в программе. Физически табло реализуется на основе ассоциативной памяти, в которой каждая команда занимает одну ячейку, состоящую из следующих полей:

  1. поля операции, в которое записан дешифрированный код операции;
  2. двух полей операндов, где размещаются сами операнды, если они уже известны, либо адреса регистров и ячеек памяти, откуда эти операнды могут быть прочитаны;
  3. поля результата, где размещается адрес (номер) регистра или ячейки памяти, куда должен быть записан результат выполнения данной команды;
  4. поля битов достоверности (ЗD);
  5. поля доступности функциональных блоков.

Табло работает совместно с буфером переименования (БУП). Каждая команда программы  после декодирования и переименования регистров записывается в свободную ячейку табло. Дешифрированный код операции команды помещается в поле операции. Если результат выполнения команды должен быть записан в регистр, то в поле результата табло записывается номер ячейки БУП, в которой находится последняя ссылка на данный регистр. После этого заполняются остальные поля табло. Процессор производит поиск операндов сначала в аппаратном регистровом файле (АРФ). Если бит достоверности (ЗD) регистра операнда в АРФ установлен в 0, то это значит, что операнда нет в АРФ, и его следует искать в БУП. Для нахождения операнда в БУП, выполняется операции ассоциативного поиска ячейки БУП, которая в поле RGr содержит номер искомого логического регистра. Если такая ячейка найдена в БУП, то проверяются значения битов достоверности ЗD и последнего переименования ПП. При единичном значении этих битов, т.е. при ЗD=ПП=1, требуемое значение операнда выбирается из буфера переименования БУП и записывается в поле операнда табло. Поле достоверности ЗD, соответствующее найденному операнду в табло при этом устанавливается в единицу.

     Если  значение искомого операнда еще  не вычислено, то в поле  операнда табло записывается номер ячейки БУП, в которой находится последняя ссылка на искомый регистр. При этом бит достоверности ЗD буфера переименования сбрасывается в ноль. Информация о готовности операндов и доступности функциональных блоков обновляется в каждом цикле процессора.

     Команда  выбирается из табло и передается на исполнение после того, как будут заполнены поля операндов команды в табло, а необходимый для исполнения команды функциональный блок ФБ свободен. После того, как команда выполнена в ФБ, ее результат записывается в ту ячейку БУП, на которую указывает поле результата табло. Одновременно, полученный результат записывается в поле операнда тех команд табло, которые в поле операнда содержат ссылку на ячейку БУП, в которую только что был записан результат выполнения команды. При записи полученного результата в табло значение бита достоверности ЗD, соответствующего записанному результату, устанавливается в единицу. После этого выполненная команда удаляется из табло, уступая место новой команде программы. Удаление команды из табло является основанием для перезаписи полученного результата из БУП в регистр АРФ, после чего соответствующая запись удаляется из БУП  

   

           
     
     
     

    ЛАБОРАТОРНЫЕ РАБОТЫ

    Размещение  байт и слов в памяти

         Память логически организована  как одномерный массив байт, каждый из которых, имеет 20-битовый физический адрес в диапазоне от 00000 – до FFFFF. Любые два смежных байта в памяти могут рассматриваться как одно 16-ти разрядное слово. Младший байт слова всегда имеет меньший адрес, а старший – больший адрес. Адресом слова считается адрес его младшего байта.

     

    Сегментация памяти и вычисление адресов

        Пространство  памяти емкостью 1Мбайт рассматривается  как набор сегментов, определяемых программным путем. Сегмент состоит из смежных ячеек памяти, и является независимой и отдельно адресуемой единицей памяти емкостью 64 Кбайт. Каждому сегменту программой назначается начальный (базовый) адрес, являющийся адресом первого байта сегмента в пространстве памяти. Начальные адреса четырех сегментов, выбранных в качестве текущих, записываются в сегментные регистры CS, DS, SS, ES.

    Сегментные  регистры

    Регистр CS – сегментный программный (кодовый) регистр;

                   DS – регистр для обращения к сегменту данных;

                   SS – регистр для обращения к сегменту стека;

                   ES – регистр для обращения к дополнительным данным.

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

          В сегментном регистре хранится 16 старших разрядов 20-битового начального адреса сегмента. Четыре младших бита адреса принимаются равными нулю и дописываются справа к содержимому сегментного регистра при вычислении физических адресов ячеек памяти. Поэтому начальные адреса сегментов всегда кратны 24 =16. Сегменты могут быть соседними (смежными), неперекрывающимися, частично или полностью перекрывающимися. Физическая ячейка памяти может принадлежать одному или нескольким сегментам.

             Физический адрес ячейки памяти представляет собой 20-ти битовое число в диапазоне 00000 – FFFFF, которое однозначно определяет положение каждого байта в пространстве памяти емкостью 1Мбайт.

            Логический адрес ячейки памяти состоит из двух 16-ти битовых без знаковых значений: начального адреса сегмента, который называется базой, и внутрисегментного смещения EA, которое определяет расстояние от начала сегмента до адресуемой ячейки. Для вычисления физического адреса база сегмента сдвигается влево на 4 разряда и суммируется со смещением EA.

    Смещение ЕА – эффективный адрес, вычисляемый  в соответствии с заданным способом адресации.

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

       Стек  организуется в ОЗУ по принципу скользящей вершины и его положение в ОЗУ определяется содержимым регистров SS (база) и SP (смещение). Регистр SS хранит базовый адрес текущего сегмента стека, а регистр SP указывает на вершину стека, т.е. содержит смещение вершины стека в стековом сегменте. При каждом обращении к стеку пересылается одно слово, причем содержимое SP изменяется автоматически: при записи в стек слова содержимое SP уменьшается на два, а при чтении из стека – увеличивается на два. 
     

    Регистры  микропроцессора  и форматы команд

         Регистры общего назначения (РОНы) разбиты на две группы:

  1. группа HL, состоящая из регистров Ax, Bx, Cx, Dx, которые предназначены для хранения данных и допускают раздельную адресацию их старших Н и младших L половин.
  2. группа PI, содержащая указательные регистры BP, SP и индексные регистры SI, DI, в которых обычно хранится адресная информация.

 

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

  Формат двухоперандной (двухадресной) команды имеет следующий вид:

 

Первый байт команды содержит код операции COP и два однобитовых поля:

d – направление передачи, w – длина операнда.

При d=1 осуществляется передача операнда или результата операции в регистр, который определяется полем reg второго байта команды.

При d=0 осуществляется передача операнда или результата из адресуемого полем reg регистра.

Поле w идентифицирует тип (разрядность) операндов:

         при w=1 команда оперирует словом, состоящим из двух байт;

         при w=0 команда оперирует одним байтом.

   Второй  байт, называемый постбайтом, определяет участвующие в операции регистры (reg) или регистр и ячейку памяти (поле r/m).

поле md – определяет режим;

поле reg – задает регистр;

поле r/m – указывает либо регистр (r) либо память(m). (m - от memory)

      Поле reg определяет операнд, который обязательно находится в одном из регистров микропроцессора и условно считается вторым операндом. Поле r/m определяет операнд, который может находиться либо в регистре, либо в памяти и условно считается первым.

Поле reg используется только для указания регистра в двухоперандных командах. Если в команде один операнд, то он идентифицируется полем r/m, а поле reg отсутствует. Вместо поля reg в этом случае используется расширение кода операции.

Информация о работе Процессор Intel