Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Структура




МИКРОПРОЦЕССОР

 

Основой ЦП является микропроцессор — программируемая ИМС, непосредственно осуществляющая арифметические и логические действия над данными, а также функции управления устройствами МПС.

 

Структура микропроцессора приведена на рис. 2.2, где обозначено:

85. ДК — дешифратор команд;

86. УУС — устройство управления и синхронизации;

87. АЛУ — арифметико-логическое устройство

88. регистры:

89. IP — счетчик команд (instruction pointer);

90. АR — регистр адреса (address register);

91. SP — указатель стека (stack pointer);

92. F — регистр признаков результатов операций с данными;

93. A — аккумулятор;

94. B, C, D, E, H, L — регистры общего назначения (РОН);

95.

96.

97.

98.

46. Инициализация прерываний, шинные циклы. По сигналу RESET микропроцессор завершает текущий шинный цикл, а по снятии сигнала он в течении примерно семи циклов синхронизации начинает выполнение инструкции считываемой из памяти по адресу FFFF0h (сигнал RESET устанавливает сегментные регистры и указатель команд в состояние CS=FFFFh, IP=0, DS=SS=ES=0 и сбрасывает все флаги). Во время действия сигнала RESET все три стабильные буферные схемы переходят в высоко эмпедансное выключенное состояние. Прерывание (изменение текущей последовательности команд) по происхождению делятся на программные, внутренние прерывания микропроцессора и аппаратные (вызываемые электрическими сигналами на соответствующих входах микропроцессора). Микропроцессор может выполнить 256 типов (номеров) прерываний каждому из которых соответствует свой вектор прерывания - двойное слово содержащее дальний адрес (CS:IP) вызываемой подпрограммы (процедуры). Под векторы (указатели прерываний) в едином адресном пространстве памяти зарезервирована область от 0 до 3FFh. Программные прерывания, вызываемые исполнением команды INT_ _ по действиям микропроцессора аналогичны дальним вызовам подпрограмм (сохранение в стеке адреса возврата - регистров CS и IP - и передача управления по указанному адреса), но имеют некоторые отличия:

· в начале выполнения прерывания микропроцессор помещает в стек регистр флагов и сбрасывает флаг разрешения прерывания IF;

· вместо адреса вызываемой подпрограммы аргументом вызова является номер вектора прерывания (от 0 до 255);

· по окончании выполнения процедуры по команде IRET микропроцессор извлекает из стека адрес возврата (команды следующей за командой INT) и сохраненное значение регистра флагов.

Сброс бита прерывания не позволяет прервать выполнение процедуры прерывания до ее окончания или явного разрешения командой EI. Само программное прерывание исполняется независимо от состояния флага IF. Программные прерывания позволяют легко и быстро вызывать общеупотребительные процедуры (сервисы BIOS и DOS) из любого сегмента без применения дальних вызовов. Прерывание INT 3 традиционно используется в целях отладки программ для создания точки останова. В отличии от остальных программных прерываний оно вызывается однобайтной инструкцией.

 

Внутреннее прерывание возбуждается микропроцессором по особым условиям: прерывание 0 вырабатывается в случае переполнения при операции деления на 0; прерывание 1 вырабатывается после выполнения каждой команды при установленном флаге трассировки TF; прерывание 4 вырабатывается по команде INT 0 если установлен флаг переполнения OF.

Аппаратные прерывания в отличии от программных и внутренних прерываний могут возникать асинхронно по отношению к исполняемой программе. Они делятся на маскируемые и немаскируемые. Микропроцессор может воспринимать прерывания после выполнения каждой команды, длинные строковые команды имеют для восприятия прерываний специальные окна.

Маскируемые прерывания вызываются переходом в высокий уровень сигнала на входе INTR и выполняются при установленном флаге IF. В этом случае микропроцессор сохраняет в стеке регистр флагов, сбрасывает флаг IF и вырабатывает два следующих за другом цикла подтверждения прерывания в которых генерируются управляющие сигналы INTA#. Высокий уровень сигнала INTR должен сохранятся по крайней мере до подтверждения прерывания. Первый цикл подтверждения холостой, по второму импульсу внешний контроллер прерываний передает по шине данных байт, содержащий номер вектора обслуживающий данный тип аппаратного прерывания. Прерывания с полученным номером вектора выполняются микропроцессором так же как и программное. Обработка текущего прерывания может быть в свою очередь прервана не маскируемым прерыванием, а если обработчик устанавливает флаг IF, то и другим маскируемым аппаратным прерываниям. После аппаратного сброса флаг IF сброшен и маскируемые прерывания невозможны до их явного разрешения.

Немаскируемые прерывания выполняются независимо от состояния флага IF по сигналу NMI. Высокий уровень на этом входе вызовет прерывания с типом (вектором) два, которые выполняются так же как и маскируемое. Его обработка не может прерваться под действием сигнала на входе NMI до выполнения команды IRET. При вызове обработчика прерывания команды вызова процедуры следует помнить, что обработчик заканчивается командой IRET, а не RET FAR. Команда IRET в отличие от RET FAR после восстановления регистров CF и IP вытаскивает из стека и регистр флагов, поэтому последовательность команд вызова обработчика в этом случае должна быть такой

PUSH FCALL FAR

Команда HALT переводит микропроцессор в состояние останова из которого его может вывести только аппаратное прерывание или аппаратный сброс. В этом режиме микропроцессор не управляет локальной шиной (все три стабильные буферы отключены). Команда WAIT она заставляет микропроцессор ожидать активного (низкий уровень) на входе TEST# до появления активного сигнала микропроцессор так же не управляет локальной шиной. В случае аппаратного прерывания по окончании его обслуживания микропроцессор снова вернется в состояние ожидания. Проверка состояния входа TEST# используется для синхронизации с математическим сопроцессором 80x87. Интерфейс 80x86 допускает наличие на своей локальной шине других контроллеров, а так же позволяет строить многопроцессорные системы. Управление шиной может передаваться то микропроцессора другому контроллеру по соответствующему запросу. Для монополизации шины на время выполнения команды предусмотрен префикс LOCK запрещающий микропроцессору отдавать управление шиной до окончания выполнения данной команды.

Набор команд Intel 80x86 включает следующие группы: команды пересылки данных, арифметические и логические команды, команды работы со строками, команды передачи управления, команды управления микропроцессором. Каждая команда имеет 1 или 2 байта кода команды за которыми может следовать 1, 2 или 4 байта операнда. Перед кодом команды возможно применение префиксов CS:, DS:, ES:, SS:, указывающих на использование заданных сегментных регистров вместо обычных префикса REP, указывающего на необходимость повтора команды указанное в регистре СХ число раз и префикса LOCK, блокирующего системную шину на время выполнения команды. Система команд данного микропроцессора является подмножеством команд 32 разрядных микропроцессоров 80х86.

47. Интерфейс микропроцессоров.

Устройство управления управляет работой микропроцессора, обменом с внешними устройствами и обработкой информации. В состав устройства управления входит уже известный нам дешифратор команд.

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

Регистры общего назначения — набор регистров, предназначенных для временного хранения операндов, результатов операций или других данных. Вообще операнды, используемые в команде, могут храниться либо в одном из внутренних регистров микропроцессора, либо в запоминающем устройстве. Естественно, обращение к операндам, находящимся в ЗУ занимает больше времени. Поэтому часто используемые данные, результаты операций, используемые как операнды для последующих операций, хранятся во внутренних регистрах микропроцессора — аккумуляторе или регистрах общего назначения. Количество регистров общего назначение различно у разных МП.

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

· Непосредственная адресация — значение операнда указывается в самой команде (в виде числа);

· Прямая адресация — в команде указывается адрес ячейки ЗУ, в которой находится операнд;

· Неявная адресация — местоположение операнда явно не указывается, но из описания операции известно, где он находится.

· Регистровая адресация — операнд находится в одном из регистров общего назначения микропроцессора или в аккумуляторе. В команде указывается имя (номер, идентификатор) этого регистра.

Регистр признаков (регистр "флагов") — регистр, каждый бит которого (" флаг ") имеет собственное значение и содержит информацию об определенном событии, произошедшем или не произошедшем в процессе выполнения предыдущей команды. Наиболее важными "флагами" являются "флаг" нуля (ZF) и "флаг" знака (NF). "Флаг" нуля равен единице, если в результате предыдущей команды был получен ноль (нулевой результат). "Флаг" знака равен единице, если в результате выполнения предыдущей команды было получено отрицательное число. Эти "флаги" могут быть использованы для организации сравнения чисел. Например, необходимо проверить условие . Для этого достаточно провести вычитание и проанализировать "флаг" нуля: если ZF=1, значит результат вычитания был нулевым и величины и равны. Если ZF=0 — не равны. Аналогично, если после операции вычитания "флаг" знака установился в 1, это говорит о том, что был получен отрицательный результат, то есть значение больше значения .

 

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

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

Стек организован по принципу "последним вошел — первым вышел". Схема работы стека при помещении в него информации представлена на рис. 2.

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

Извлечение данных из стека происходит в обратном порядке (рис. 3). Извлечено может быть только число, находящееся в вершине стека. При его извлечении, находящиеся в стеке данные "продвигаются" вверх и следующее число занимает место в вершине стека и может быть извлечено из него.

Стек может быть организован аппаратно или программно-аппаратно.

Аппаратный стек — это специальным образом организованная группа регистров. При помещении данных в вершину стека, его содержимое физически "продвигается" путем перезаписи информации между регистрами. Работа аппаратного стека контролируется специальным блоком управления. Недостаток такого стека – аппаратная сложность и ограниченность объема данных, которые могут быть сохранены.

В случае программно-аппаратного стека в качестве стека используется специально выделенная область основного запоминающего устройства. Одна из ячеек этой области является вершиной стека и ее адрес хранится в специальном регистре микропроцессора, называемом " указатель стека ". Именно такой вариант является наиболее распространенным и представлен на рис. 1 При записи данных в стек, уже находящиеся там данные никуда не перемещаются, а "перемещается" вершина стека (путем изменения значения указателя стека), (см. рис. 4). Запись данных всегда происходит в ячейку, являющуюся в данный момент вершиной стека, адрес которой хранится в указателе стека.

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

Недостаток программно-аппаратного стека — большее, чем в случае просто аппаратного стека, время, необходимое для записи/извлечения данных. Объясняется это необходимостью обращения к основному ЗУ при каждой операции со стеком. Достоинства — простота аппаратной реализации и отсутствие жестких ограничений на размер стека (фактически его размер ограничен только размером основного ЗУ).

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

В большинстве современных процессоров основной стек, доступный программам, имеет программно-аппаратную реализацию. Соответственно, МП имеет в своем составе регистр-указатель стека. Аппаратный стек применяется в специализированных процессорах

Таким образом, мы рассмотрели обобщенную архитектуру микропроцессора, включающую в себя АЛУ, УУ с ДШК, аккумулятор, РОН, счетчик команд, регистр флагов и указатель стека.

 

Обобщенный интерфейс микропроцессора включает шину данных, шину адреса и шину управления (рис. 1).

48. Внутренний КЭШ.

Внутреннее кэширование обращения к памяти применяются начиная с 486-го микропроцессора. В 486-ых и Pentium-ах есть внутреннее кэширование первого уровня, а Pentium PRO и II есть и вторичное кэширование. Микропроцессорный КЭШ могут иметь, как раздельный тип данных так и общий..... Для внутреннего КЭШа используется наборно-ассоциативная архитектура. Строки в КЭШ памяти выделяются только при чтении, метод записи в ранних 486 - сквозная запись, в поздних моделях возможно переключение на обратную запись. Работу внутренней КЭШ памяти характеризуют следующие процессы: обслуживание работ микропроцессора на обращение к памяти, выделение и замещение строк для кэширования физической памяти, обеспечение согласованности данных внутреннего КЭШа и оперативной памяти, управление кэшированием. Любой внутренний запрос микропроцессора на обращение к памяти направляется во внутренний КЭШ. Теги четырех строк набора, который обслуживает данный адрес, сравниваются со старшими битами запрошенного физического адреса. Если адресуемая область есть в строке КЭШ памяти (КЭШ попадание) запрос на чтение обслуживается КЭШем, запрос на запись модифицирует данную строку и в зависимости от метода записи либо сразу выводит на внешнюю шину, либо позже при обратной. При КЭШ промахе запрос на запись направляется только на внешнюю шину. Запрос на чтение при КЭШ промахе обслуживает следующим образом, если он относится к кэшируемой области памяти выполняется цикл заполнения целой строки КЭШа, то есть все байты читаются из оперативной памяти и помещаются в одну из строк набора КЭШа обслуживающего данный адрес. Если затребованные данные не укладываются в данной строке заполняется и соседняя. Внутренний запрос микропроцессора на данные удовлетворяется сразу, как только затребованные данные считываются из ОЗУ, то есть заполнение строки до конца может параллелиться с обработкой полученных данных. Если в наборе есть свободная строка то заполняется именно она, при отсутствии свободных строк в наборе замещается строка, к которой дольше всех не было обращений (алгоритм псевдо LRU). Таким образом выделение и замещение строк выполняется только для КЭШ промахов чтения, при промахах записи заполнение строк не производится. Управлять кэшированием можно только на этапе заполнения строк. Кроме того существует возможность их аннулирования, то есть объявление их недостоверными и очистка всей КЭШ памяти. Очистка внутренней КЭШ памяти при сквозной записи осуществляется внешним сигналом и инструкциями аннулирования. Аннулирование строк выполняется внешними схемами, оно необходимо в системах у которых в оперативную память запись может производить не только микропроцессор, но и другие контроллеры шины. В этом случае требуются специальные средства для поддержания согласованности данных во всех степенях памяти: в первичном и вторичном КЭШе и динамическом ОЗУ. Аннулирование строки микропроцессор выполняет в любом состоянии. Управление заполнением КЭШа возможно и на аппаратном, и на программном уровнях. Микропроцессор позволяет кэшировать любую область физической памяти. Программно можно управлять кэшируемостью каждой страницы памяти, так как в адресном пространстве есть области, для которых кэширование специально недоступно или метод программной записи непригоден. Кэширование принято запускать, например для выполнения однократно выполняемого участка программы с тем, чтобы из КЭШа не вытеснялись более часто используемые фрагменты.

49. Пакетный режим передачи данных, интерфейс шин, расширенная архитектура.

Центральную роль в архитектуре играет процессор. К его локальной шине (Host Bus) подключаются модули вторичного кэша. Основная динамическая память имеет собственную мультиплексированную шину адреса и шину данных, обычно изолированную от локальной шины процессора.

Следующий этаж архитектуры – устройства подключенные к PCI. Эта шина является центральной в современных системных платах, и все интерфейсные адаптеры, а также системные средства ввода/вывода в конечном счете общаются с ядром системы через шину PCI. Кроме плат расширения, устанавливаемых в слоты шины PCI, ее абонентом является и мост PIIX.
Основная задача шин – объединить в одну систему разнообразную номенклатуру модулей, обеспечив их высокопроизводительную надежную работу. Под надлежащей работой следует понимать выполнение условий открытости, совместимости, однотипности, гибкости, надежности, ремонтопригодности, эффективности и др. требований. Суть этих всех требований можно сформулировать так: замена одних шин другими не должна сопровождаться появлением архитектурных ограничений. Наличие существенных различий в производительности между различными модулями привело к необходимости использовать в современных ПК систему шин, вместо одной общей.
У разных шин организация работы разная. Однако при при этом ряд положений используется общий. Общая организация работы шины может быть представлена как совокупность механизмов каждый из которых выполняет вполне определенную функцию передачи информации, например, чтение из памяти или порта запись в них и т.д. Организацию управления работы шины можно представить, как переход от выполнения одного механизма к другому.

 

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

Пакетный режим передачи. Адрес передается один раз, после чего передается пакет данных с линейно-возрастающими адресами. Количество циклов данных в пакете заранее определено, но перед последним циклом инициатор обмена при введенном сигнале разрешения обмена (IRDY#) снимает специальный сигнал пакетной передачи (FRAME#). После последней фазы данных инициатор снимает сигнал IRDY# и шина переходит в состояние покоя. Это стандартный режим работы шины PCI.
Конвейеризация обращений к памяти. Данный режим используется в высокоскоростных шинах (AGP). При неконвеиризированых обращениях шины во время реакции памяти на запрос шина простаивает. Конвейерный доступ позволяет в это же время передавать следующие запросы, а потом получить полный поток передаваемых данных. Спецификация AGP предусматривает возможность постановки в очередь до256 запросов, при этом поддерживает две пары очередей для операций записи и чтения памяти с высоким и низким приоритетом.
Сдвоенные передачи данных обеспечивают повышение пропускной способности шины в 2 раза без изменения тактовой частоты шины. Суть сдвоенной передачи в том, что блоки данных передаются, как по фронту так и по спаду сигнала синхронизации (в AGP в шине ATA в режиме UltraDMA-33).

50. Синхронизация, архитектура двойной независимой шины.




Поделиться с друзьями:


Дата добавления: 2015-04-23; Просмотров: 386; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.039 сек.