Изучение архитектуры мп обычно начинают со знакомства

Микропроцессоры выполняются в виде одной или нескольких БИС

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

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

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

В остальных работах продолжается изучение архитектуры и логических основ ЭВМ и приобретаются навыки программирования на языке ассемблера. Это основное звено, или "мозг" компьютера. OE Ввод данных Регистр вывода Синхр. Персональные компьютеры строятся на базе микропроцессоров, выполняемых в настоящее время на одном кристалле или "чипе". В общем случае под архитектурой МП понимают совокупность следующих компонентов и характеристик - разрядность адресов и данных; - состав, имена и назначение программно-доступных регистров; - форматы системы команд; - режимы адресации памяти; - способы машинного представления данных разного типа; - способ адресации внешних устройств и средства выполнения операций ввода-вывода; - особенности инициирования и обработки прерываний.

Программы, управляющие функционированием МПС, могут быть расположены в различных типах памяти. Из ПЗУ МП может лишь считывать команды и данные, но не может модифицировать его содержимого в отличие от ОЗУ, для которого возможно как считывание, так и запись любой информации Архитектура микропроцессора Архитектура МП Intel в упрощённом виде представлена на рисунке 1. С функциональной точки зрения МП можно разделить на две части операционное устройство и шинный интерфейс. Все компоненты МП взаимодействуют между собой посредством систем шин адресных 16 разрядовданных 8 разрядов и управления.

АРХИТЕКТУРА МИКРОПРОЦЕССОРОВ И ИХ ПРОГРАММИРОВАНИЕ

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

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

Рисунок Регистр флагов процессора Так, например, клавиатура или модем, могут временно приостанавливать текущий код для выполнения функций, требующих немедленного обслуживания.

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

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

Например, в данном фрагменте программы mov ax,5 mov dx,9 add ax,dx значение 5 загружается в регистр AX, значение 9 - в DX, и эти два значения складываются.

Тест по курсу дисциплины МПС

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

Это может оказаться удобным при работе с данными размером в байт. Таким образом, регистр AX можно использовать, как два отдельных регистра. В следующем фрагменте программы регистр AH устанавливается в значение 0, это значение копируется в AL и затем в регистр AL добавляется 1. В результате в регистре AX будет записано значение 1. Регистры BX, CX и DX могут аналогичным образом использоваться либо как один разрядный регистр, либо как два 8-разрядных.

Регистр BX может использоваться для ссылки на ячейку памяти указатель. Если говорить кратко, то битовое значение, записанное в BX, может использоваться в качестве части адреса ячейки памяти, к которой производится доступ. Например, следующий код загружает в AL содержимое адреса памяти 9 mov ax,0 mov ds,ax mov bx,9 mov al,[bx] Как можно заметить, перед обращением к ячейке памяти, на которую указывает BX, мы загрузили в DS значение 0 через регистр AX. Это результат сегментной организации памяти процессора По умолчанию, когда BX используется в качестве указателя на ячейку памяти, он ссылается на нее относительно сегментного регистра DS.

Предположим, мы хотим 10 раз повторить выполнение блока инструкций. Уменьшение значения счетчика и цикл - это часто используемый элемент программы, поэтому в процессоре используется специальная инструкция для того, чтобы циклы выполнялись быстрее и были более компактными. Эта инструкция называется LOOP. Инструкция LOOP инструкция цикла вычитает 1 из значения регистра CX и выполняет переход, если содержимое регистра CX не равно 0 все это в одной инструкции.

Фактически, кроме использования регистра DX нет другого способа адресоваться к портам ввода-вывода с по Например, в следующем фрагменте программы в порт h LPT записывается значение 62 mov al,62 mov dx,h out dx,al Другие уникальные качества регистра DX относятся к операциям деления и умножения.

Когда вы делите или битовый делитель, старшие 16 бит делимого должны быть помещены в регистр DX. После выполнения деления остаток также сохраняется в DX. Младшие 16 бит делимого должны быть помещены в AX. Частное от деления также будет записано в AX. Ана- 9 10 логично, когда вы перемножаете два битовых сомножителя, старшие 16 бит произведения сохраняются в DX младшие 16 бит записываются в регистр AX. Регистр SI может использоваться, как указатель на ячейку памяти.

Например mov ax,0 mov ds,ax mov si,20 mov al,[si] Здесь 8-битовое значение, содержащееся по адресу 20, записывается в регистр AL. Особенно полезно использовать регистр SI для ссылки на память в строковых инструкциях процессора Например mov ax,0 mov ds,ax mov si,20 mov al,[si] lodsb Здесь не только содержимое по адресу памяти, на который указывает SI, сохраняется в регистре AX, но к SI также добавляется 1.

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

Регистр DI очень похож на регистр SI в том плане, что его можно использовать в качестве указателя ячейки памяти. При использовании его в строковых инструкциях он имеет также особые свойства. Например mov ax,0 mov ds,ax mov di, add bl,[di] lodsb Здесь 8-битовое значение, расположенное по адресузаписывается в регистр BL.

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

Например cld mov dx,0 mov es,dx mov di, stosb Строковая инструкция STOSB используется здесь и для сохранения значения в регистре AL по адресу памяти, на который указывает регистр DIи для добавления к содержимому регистра DI 1. Регистр BP также может использоваться в качестве указателя на ячейку памяти, но здесь есть некоторые отличия.

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

Регистр SP называется также указателем стека. Это "наименее общий" из регистров общего назначения, поскольку он практически всегда используется для специальной цели - обеспечения стека. Стек - это область памяти, в которой можно сохранять значения и из которой они могут затем извлекаться по дисциплине "последний пришел первый - ушел" LIFO. То есть последнее сохраненное в стеке значение будет первым значением, которое вы получите при чтении из стека. Регистр SP в каждый момент времени указывает на вершину стека.

Действие, состоящее в занесении значений в стек, называют также "заталкиванием" pushing в стек. В самом деле, инструкция PUSH используется для занесения значений в стек. Аналогично, действие, состоящее в извлечении выборке значений из стека, называют также "выталкиванием" popping из стека для этого используется инструкция POP.

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

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

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

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

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

Рассмотрим, например, следующий фрагмент программы mov ax,h mov ds,ax mov si,h mov dl,[si] Здесь для сегментного регистра DS устанавливается значение h, SI устанавливается в значение h. Мы можем представить их в виде "сегмент смещение" h. Все инструкции и режимы адресации процессора по умолчанию работают относительно того или иного сегментного регистра, хотя в некоторых инструкциях можно явно указать, что нужно использовать желаемый сегментный регистр. Обычно редко требуется загружать значение непосредственно в сегментный регистр, а вместо этого сегментные регистры в программе имеют символические имена сегментов, которые в ходе ассемблирования, компоновки и выполнения превращаются в числа.

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

Самый важный адресный регистр — регистр IP — регистр-счетчик текущего адреса программы программный счетчик. SP —указатель стека Stack — тоже адресный регистр-счетчик, только для специальной — стековой памяти.

С этим регистром предстоит поближе познакомиться, когда будут изучаться стековая память и ее команды. BP — просто регистр адреса стековой памяти.

В этих цепочных командах SI хранит адрес источника данных src15 а DI — адрес приемника данных dst. При этом после каждой пересылки одного операнда их содержимое автоматически увеличивается или уменьшается — это как задано направлениеподготавливая адреса транспортировки очередного операнда. Другая группа регистров называется сегментной RS и тоже участвует в формировании физического адреса. Обычно в других мощных микропроцессорах, где адресное пространство от 1 Мбайт до 4 Гбайт, роль сегментного регистра выполняет регистр с одним именем.

И это, в общем-то, достаточно. Но фирма Intel — не как все, и в данном микропроцессоре их четыре. Главное назначение сегментных регистров — расширение адресного пространства. Сегментные регистры — те же разрядные регистры, как и адресные. Так, например, двоичное число есть EF2C в шестнадцатеричном коде Н-коде. Почему их четыре и когда они используются? Для начала необходимо обратить внимание, что последняя буква у них S, что значит — сегментный.

Теперь разберемся с первыми буквами. C — command —командный. IP ; S — stack — стековый. SS используется только при формировании адреса стековой памяти стека совместно с SP указывают: BP ; D — data — данные.

DS по умолчанию используется в пересылках данных между микропроцессором и ЗУ совместно с адресом ЕА этих данных, указанных прямо или косвенно в команде; ES — резервный сегментный регистр.

На этом пока можно закончить знакомство с сегментными регистрами. А поставленные рядом с именами регистров числа — это номера или адресана которые они если они указаны в коде операции должны откликаться. Из рисунка 3 следует, что они подключены к ВШД — внутренней шине данных, и что они могут функционировать как разрядные регистры в количестве 4 штук или как 8-разрядные в количестве 8 штук. Размер регистра полностью определяется кодом операции команды. Рядом с именем регистра в скобках указан его номер адрес.

Эти регистры в командах используются самым различным образом. Поэтому они получили название: РОНы —регистры общего назначения. Правда, есть одно небольшое примечание: Хотя для МП это совершенно нехарактерно. АЛУ — арифметико-логическое устройство. Все АЛУ различных типов микропроцессоров в функциональном отношении практически не отличаются друг от друга. Они реализуют, как правило, до 8 функций: Кроме этого, выход АЛУ 6-ю разрядами подключен еще к одному регистру — регистру флагов F.

По смыслу, в этом регистре хранится слово состояния процессора PSW — processor status wordгде каждый из разрядов регистра F хранит результат какой-либо операции или указание для действия определенной команды. Забегая вперед, можно привести пример: Каждый флаг или чаще говорят: Если число РОНов может быть больше или меньше, то каждый флаг строго индивидуален и его появление вызвано только необходимостью запомнить нужную особенность результата, полученную при выполнении команды АЛУ.

Подробнее о флаговом регистре — далее. А пока о той части флагов, которые устанавливаются результатами арифметико-логических операций. CF — устанавливается в единицу взводитсяесли произошло переполнение формата. Например, складываются два байта словаи происходит переполнение: Чтобы его не потерять как в школе учили: PF — устанавливается, если двоичное число в младшем байте состоит из четного числа единиц.

Используется для контроля ввода-вывода. Дело в том, 17 что коды обмена информации в каналах связи — КОИ-7 7 разрядовпоэтому для надежности 8-й бит старший дополняют до четного или нечетного говорят: И в случае потери одного бита нарушается четность или нечетность, и эту ситуацию — по изменению флага PF — можно сразу зафиксировать.

AF —флаг переполнения, но только младшей тетрады байта. Используется при сложении чисел, представленных в двоично-десятичной форме. ZF —флаг нуля, или нулевого результата. SF — флаг, а точнее бит знака. Дело в том, что если число представлено со знаком, то под его место отводится всегда старший бит. Если это байт, то D7, если слово, то — D OF — флаг арифметического переполнения; подразумевается, что число со знаком.

Алгоритм контроля достаточно прозрачен: Аналогично и для вычитания. IF, DF, TF, которые устанавливаются программно, можно будет познакомиться по мере изучения соответствующих команд. Теперь можно перейти к центральному элементу микропроцессорного модуля — цифровому автомату ЦА. Главная его функция заключается в том, чтобы выполнить алгоритм определенную последовательность действий согласно коду операции который на все время выполнения команды хранится в регистре кода операции РКОПи по окончании команды загрузить в РКОП код операции следующей команды.

По заднему фронту информация на ШД фиксируется в МП. Этот строб подключает выход регистра векторов контроллера прерываний к шине данных. Микропроцессор, выполнив до конца текущую команду, переходит в 3-е состояние отключается от системной шины.

Необходимо отметить, что внутри цифрового автомата находится кварцевый генератор, вырабатывающий сигнал OSC с частотой 14,НГц. Этот генератор работает непрерывно.

5 1 понятие об архитектуре микропроцессора и микроэвм - Документ

Сигнал с генератора делится на 3, образуя сигнал CLK с тактовой частотой 4, RES — сигнал сброса МП в исходное состояние. При подаче этого сигнала на вход МП последний переходит в 3-е состояние все выводы переходят в высокоомное состояние. В момент снятия сброса происходят следующие действия: