Процессор имеет 7 регистров общего назначения сколько разрядов в поле команды
Регистр процессора - сверхбыстрая оперативная память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления.
По типу приёма и выдачи информации различают 2 типа регистров:
- С последовательным приёмом и выдачей информации — сдвиговые регистры.
- С параллельным приёмом и выдачей информации — параллельные регистры.
По назначению регистры различаются на:
- аккумулятор — используется для хранения промежуточных результатов арифметических и логических операций и инструкций ввода-вывода;
- флаговые — хранят признаки результатов арифметических и логических операций;
- общего назначения — хранят операнды арифметических и логических выражений, индексы и адреса;
- индексные — хранят индексы исходных и целевых элементов массива;
- указательные — хранят указатели на специальные области памяти (указатель текущей операции, указатель базы, указатель стека);
- сегментные — хранят адреса и селекторы сегментов памяти;
· управляющие — хранят информацию, управляющую состоянием процессора, а также адреса системных таблиц.
Начиная с 80386 процессоры Intel предоставляют 16 основных регистров для пользовательских программ плюс еще 11 регистров для работы с мультимедийными приложениями (MMX(Multimedia Extension)) и числами с плавающей запятой (FPU/NPX (Float Point Unit / Numerical Processor Extension)). Все команды так или иначе изменяют значения регистров, и всегда быстрее и удобнее обращаться к регистру, чем к памяти.
Из реального (но не из виртуального) режима помимо основных регистров доступны так же регистры управления памятью (GDTR, IDTR, TR, LDTR), регистры управления (CR0, CR1 – CR4), отладочные регистры (DR0 – DR7) и машинно-специфичные регистры, но они не применяются для решения повседневных задач.
Регистры общего назначения.
Остальные четыре регистра – ESI (индекс источника), EDI (индекс приемника), EBP (указатель базы), ESP (указатель стека) - имеют более конкретное назначение и применяются для хранения всевозможных временных переменных. Регистры ESI и EDI необходимы в строковых операциях, EBP и ESP – при работе со стеком. Так же как в случае с регистрами EAX – EDX, младшие половины этих четырех регистров называются SI, DI, BP и SP соответственно, и в процессорах до 80386 только они и присутствовали.
(Регистры общего назначения)
Сегментные регистры.
При использовании сегментированных моделей памяти для формирования любого адреса нужны два числа – адрес начала сегмента и смещение искомого байта относительно этого начала (в бессегментной модели памяти flat адреса начала всех сегментов равны). Операционные системы (кроме DOS) могут размещать сегменты, с которыми работает программа пользователя, в разных местах памяти и даже временно записывать их на диск, если памяти не хватает. Так как сегменты способны оказаться где угодно, программа обращается к ним, применяя вместо настоящего адреса начала сегмента 16-битное число, называемое селектором. В процессорах Intel предусмотрены шесть 16-битных регистров – CS, DS, ES, FS, GS, SS, где хранятся селекторы. Это означает, что в любой момент можно изменить параметры, записанные в этих регистрах.
В отличие от DS, ES, GS, FS, которые называются регистрами сегментов данных, CS и SS отвечают за сегменты двух особенных типов – сегмента кода и сегмент стека. Первый содержит программу, исполняющуюся в данный момент, следовательно, запись нового селектора в этот регистр приводит к тому, что далее будет исполнена не следующая по тексту программы команда, а команда из кода, находящегося в другом сегменте, с тем же смещением. Смещение очередной выполняемой команды всегда хранится в специальном регистре EIP (указатель инструкции, 16-битная форма IP), запись в который также приведет к тому, что далее будет исполнена какая-нибудь другая команда. На самом деле все команды передачи управления – перехода, условного перехода, цикла, вызова подпрограммы и т. п. – и осуществляют эту самую запись в CS и EIP.
Стек.
Стек – организованный специальным образом участок памяти, который используется для временного хранения переменных, передачи параметров вызываемым подпрограммам и сохранения адреса возврата при вызове процедур и прерываний. Легче всего представить стек в виде стопки листов бумаги (это одно из значений слова «stack» в английском языке) – вы можете класть и забирать листы только с вершины стопки. Поэтому, если записать в стек числа 1, 2, 3, то при чтении они окажутся в обратном порядке – 3, 2, 1. Стек располагается в сегменте памяти, описываемом регистром SS, и текущее смещение вершины стека отражено в регистре ESP, причем во время записи значение этого смещения уменьшается, то есть он «растет вниз» от максимально возможного адреса. Такое расположение стека «вверх ногами» может быть необходимым, к примеру, в бессегментной модели памяти, когда все сегменты, включая сегменты стека и кода, занимают одну и туже область – память целиком. Тогда программа исполняется в нижней области памяти, в области малых адресов, и EIP растет, а стек располагается в верхней области памяти, и ESP уменьшается. При вызове подпрограммы параметры в большинстве случаев помешают в стек, а в EBP записывают текущее значение ESP. Если подпрограмма использует стек для хранения локальных переменных, ESP изменится, но EBP можно будет использовать для того, чтобы считывать значения параметров напрямую из стека (их смещения запишутся как EBP + номер параметра).
Регистр флагов.
Еще один важный регистр, использующийся при выполнении большинства команд, - регистр флагов. Его младшие 16 бит, представлявшие собой весь этот регистр до процессора 80386, называются FLAGS. В E FLAGS каждый бит является флагом, то есть устанавливается в 1 при определенных условиях или установка его в 1 изменяет поведение процессора. Все флаги, расположенные в старшем слове регистра, имеют отношение к управлению защищенным режимом, поэтому будем рассматривать только регистр FLAGS.
- CF – флаг переноса. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос старшего бита или если требуется заем (при вычитании), в противном случае – в 0. Например, после сложения слова 0FFFFh и 1, если регистр, в который надо поместить результат, - слово, в него будет записано 0000h и флаг CF=1.
- PF – флаг четности. Устанавливается в 1, если младший байт результата предыдущей команды содержит четное число битов, равных 1, и в 0, если нечетное. Это не тоже самое, что делимость на два. Число делится на 2 без остатка, если его самый младший бит равен нулю, и не делится, когда он равен 1.
- AF – флаг полупереноса или вспомогательного переноса. Устанавливается в 1, если в результате предыдущей операции произошел перенос (или заем) из третьего бита в четвертый. Этот флаг используется автоматически командами двоично-десятичной коррекции.
- ZF – флаг нуля. Устанавливается в 1, если результат предыдущей команды – ноль.
- SF – флаг знака. Он всегда равен старшему биту результата.
- TF – флаг ловушки. Он был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его в 1 приводит к тому, что после выполнения каждой программной команды управление временно передается отладчику (вызывается прерывание 1 – описание команды INT).
- IF – флаг прерываний. Сброс этого флага приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств (описание команды INT). Обычно его сбрасывают на короткое время для выполнения критических участков кода.
- DF – флаг направления. Он контролирует поведения команд обработки строк: когда он установлен в 1, строки обрабатываются в сторону уменьшения адресов, когда DF=0 – наоборот.
- OF – флаг переполнения. Он устанавливается в 1, если результат предыдущей арифметической операции над числами со знаком выходит за допустимые для них пределы. Например, если при сложении двух положительных чисел получается число со старшим битом, равным единице, то есть отрицательное, и наоборот.
Флаги IOPL (уровень привилегий ввода-вывода) и NT (вложенная задача) применяются в защищенном режиме.
6
Представить десятичное число 45 в двоичном коде.
а) 101101; + б) 110010; в) 100011; г) 111010.
7
Представить десятичное число 50 в двоичном коде.
а) 101101; б) 110010; + в) 100011; г) 111010.
8
Представить десятичное число 35 в двоичном коде.
а) 101101; б) 110010; в) 100011; + г) 111010.
9
Представить десятичное число 58 в двоичном коде.
а) 101101; б) 110010; в) 100011; г) 111010. +
10
Сколько адресных входов имеет микросхема памяти 8Кх8.
а) 8; б) 11; в) 13; + г) 16
11
Сколько адресных входов имеет микросхема памяти 256х4.
а) 8; + б) 11; в) 13; г) 16
12
Сколько адресных входов имеет микросхема памяти 2Кх8.
а) 8; б) 11; + в) 13; г) 16
13
Сколько адресных входов имеет микросхема памяти 64Кх1.
а) 8; б) 11; в) 13; г) 16+
14
Представить десятичное число 42 в двоичном коде.
а) 101101; б) 110010; в) 101010; + г) 111010.
15
Представить десятичное число 53 в двоичном коде.
а) 101101; б) 110010; в) 100011; г) 110101.+
16
Какой режим микропроцессорных систем используется для передачи больших массивов информации между памятью и внешним устройством.
а) ожидания;
б) прерывания;
в) прямого доступа к памяти;
г) прямой передачи данных. +
17
Какой режим микропроцессорных систем используется для передачи больших массивов информации между внешними устройствами. г
а) ожидания;
б) прерывания;
в) прямого доступа к памяти;
г) прямой передачи данных. +
18
Режим работы микропроцессорных систем не требует обращения к внешним устройствам а
а) внешний;+
б) прерывания;
в) прямого доступа к памяти;
г) прямой передачи данных.
19
Режим работы микропроцессорных систем позволяет обработку информации по приоритету
а) внешний;
б) прерывания;+
в) прямого доступа к памяти;
г) прямой передачи данных.
20
Каково назначение контроллера прямого доступа к памяти
а) ускорить обмен между памятью и внешним устройством; +
б) срочное обслуживание внешнего устройства;
в) выработка временных задержек;
г) организация обмена в последовательном коде.
21
Каково назначение контроллера приоритетных прерываний
а) ускорить обмен между памятью и внешним устройством;
б) срочное обслуживание внешнего устройства;+
в) выработка временных задержек;
г) организация обмена в последовательном коде.
22
Каково назначение программного таймера в
а) ускорить обмен между памятью и внешним устройством;
б) срочное обслуживание внешнего устройства;
в) выработка временных задержек;+
г) организация обмена в последовательном коде.
В этом случае числа представляются в двоичной системе счисления, но для отображения каждой десятичной цифры используется 4 бита. Например число 53 в двоично-десятичном коде может быть представлено как 0101 0011. Сравните с двоичным представлением этого же числа 0011 0101.
Рассмотрим особенности организации процесса обработки информации в цифровых устройствах (цифровых автоматах). Задача создания цифрового автомата, выполняющего определенные действия над двоичными сигналами, заключается в выборе элементов и способе их соединения, обеспечивающих заданное функциональное преобразование. Эти задачи решают с помощью алгебры логики.
По схемному решению и характеру связи между входными и выходными переменными различают два типа цифровых устройств – комбинационные и последовательные. В комбинационных цифровых устройствах совокупность сигналов на выходах в каждый конкретный момент времени полностью определяется входными сигналами, действующими в этот момент на его входах. Алгоритм функционирования комбинационных устройств может быть представлен в виде таблицы соответствия, содержащей значения выходных сигналов для всех возможных комбинаций значений входных сигналов. Цифровые утройства последовательного типа существенно отличаются от комбинационных прежде всего наличием памяти. Их выходные сигналы являются функцией не только входных сигналов, но и внутреннего состояния, в котором устройство находилось до поступления входных сигналов.
На основе цифрового устройства последовательного типа может быть спроектировано устройство, которое в зависимости от последовательности входных сигналов будет выполнять один из многих алгоритмов. Эти входные сигналы могут размещаться и последовательно извлекаться из внешнего блока регистров, называемого управляющей памятью. Некоторые входные сигналы могут использоваться для синхронизации поступления входных сигналов из управляющей памяти и для их адресации. Такое устройство может быть названо устройством с программируемой логикой или программируемым устройством. К таким устройствам относится и микропроцессор.
Микропроцессоры обладают следующими характеристиками: разрядность адреса и данных, тип корпуса, количество и напряжение источников питания, мощность рассеяния, температурный диапазон, возможность расширения разрядности, время цикла выполнения команд, уровни сигналов, помехоустойчивость, нагрузочная способность, надежность и т.д.
По числу больших интегральных схем (БИС) в микропроцессорном комплекте различают однокристальные, многокристальные и многокристальные секционированные микропроцессоры.
Однокристальные микропроцессоры получают при реализации всех аппаратных средств процессора в виде одной БИС. По мере увеличения степени интеграции элементов в кристалле и числа выводов корпуса параметры однокрстальных микропроцессоров улучшаются.
Многокристальные микропроцессоры получают при разбиении его логической структуры на функционально законченные части, которые реализуют в виде БИС. Один из возможных вариантов разбиения структуры процессора – это создание трехкристального микропроцессора, содержащего БИС операционного процессора, управляющего процессора и интерфейсного процессора. Операционный процессор (ОП) служит для обработки данных, управляющий процессор (УП) выполнет функции выборки, декодирования и вычисления адресов команд и операндов. Автономность работы и большое быстродействие БИС УП позволяет выбирать команды из памяти с большей скоростью, чем скорость их выпонения в ОП. При этом в УП образуется очередь еще не исполненных команд, заранее подготавливаются данные, которые потребуются ОП в следующих циклах работы. Такая опережающая выборка команд экономит время ОП на ожидание операндов, необходимых для выполнения команд программы. Интерфейсный процессор (ИП) позволяет подключить память и периферийные средства к микропроцессору.
Выбираемые из памяти команды распознаются и выполняются каждой частью микропроцессора автономно, и поэтому может быть обеспечен режим одновременной работы всех БИС МП, то есть конвейерный поточный режим исполнения последовательности команд программы (минимальное время между выполнениями команд). Такой режим работы значительно повышает производительность микропроцессора.
По назначению различают универсальные и специализированные микропроцессоры. Универсальные микропроцессоры можно применять для решения разноообразных задач. Производительность универсальных микропроцессоров мало зависит от проблемной специфики решаемых задач. Специализация микропроцессора, то есть его проблемная ориентация на ускоренное выполнение определенных функций, позволяет резко увеличить эффективную производительность при решении только определенных задач. Среди специализированных микропроцессоров можно выделить: микроконтроллеры, ориентированные на выполнение сложных последовательностей логических операций; математические МП, предназначенные для повышения производительности при выполнении арифметических операций за счет, например, матричных методов их выполнения; МП для обработки данных в различных областях применения и т.д. С помощью специализированных МП можно эффективно решать сложные задачи параллельной обработки данных.
По виду обрабатываемых входных сигналов различают цифровые и аналоговые микропроцессоры. Сами микропроцессоры – это цифровые устройства, однако могут иметь встроенные аналого-цифровые и цифро-аналоговые преобразователи. Поэтому входные аналоговые сигналы передаются в МП через преобразователь в цифровой форме, обрабатываются и после обратного преобразования в аналоговую форму поступают на выход. С точки зрения архитектуры такие микропроцессоры представляют собой аналоговые функциональные преобразователи сигналов и называются аналоговыми микропроцессорами. Они могут выполнять функции любой аналоговой схемы.
По характеру временной организации работы различают синхронные и асинхронные микропроцессоры. Синхронные микропроцессоры – это микропроцессоры, в которых начало и конец выполнения операций задаются устройством управления (время выполнения операций в этом случае не зависит от вида выполняемых команд и величин операндов). Асинхронные микропроцессоры позволяют начало каждой следующей операции определить по сигналу фактического окончания выполнения предыдущей операции.
По количеству выполняемых программ различают одно- и многопрограммные микропроцессоры. В однопрограммных микропроцессорах одновременно выполняется только одна программа. Переход к выполнению другой программы происходит после завершения текущей программы. В много- или мультипрограммных микропроцессорах одновременно выполняются несколько программ.
Типовая структура микропроцессора приведена на рисунке ниже. Микропроцессор состоит из трех основных блоков: арифметическо – логического устройства (АЛУ), блока внутренних регистров и устройства управления. Для передачи данных между этими блоками используется внутренняя шина данных. АЛУ выполняет одну из главных функций микропроцессора – обработку данных. Перечень функций АЛУ зависит от типа микропроцессора. Операции, выполняемые АЛУ большинства микропроцессоров следующие: сложение, вычитание, логическое сложение, логическое умножение, исключающее ИЛИ, инверсия, сдвиг вправо, сдвиг влево, увеличение на 1, уменьшение на 1.
Каждый регистр микропроцессора можно использовать для временного хранения одного слова данных. Некоторые регистры имеют специальное назначение, другие – многоцелевое. Последние называются регистрами общего назначения (РОН) и могут использоваться программистом по его усмотрению. Количество и назначение регистров зависит от его типа. Рассмотрим назначение основных регистров, имеющихся почти во всех микропроцессорах.
Аккумулятор – это главный регистр при различных манипуляциях с данными. Большинство арифметических и логических операций осуществляется путем использования АЛУ и аккумулятора. Любая из таких операций над двумя словами данных (операндами) предполагает размещение одного из них в аккумуляторе, а другого в памяти или каком-либо регистре. Результат выполнения операции АЛУ тоже обычно размещается в аккумуляторе, соднржимое которого при этом теряется. Операцией другого типа, использующей аккумулятор, является передача данных из одной части микропроцессора в другую. Например, пересылка данных между портом ввода-вывода и памятью, между двумя областями памяти и т.д. Выполнение такой операции осуществляется в два этапа: сначала выполняется пересылка данных из источника в аккумулятор, затем – из аккумулятора в пункт назначения. Микропроцессор может выполнять некоторые действия над данными непосредственно в аккумуляторе. Например, аккумулятор можно очистить (сбросить) путем записи во все его разряды двоичных нулей, установить в единичное состояние путем записи во все его разряды двоичных единиц. Содержимое аккумулятора можно сдвигать влево или вправо (показать схему), инвертировать, то есть значения нулей заменить на значения единиц во всех разрядах и наоборот.
Счетчик команд – это один из наиболее важных регистров микропроцессора. Как известно, программа – это последовательность команд (инструкций), хранимых в памяти и предназначенных для того, чтобы инструктировать процессор, как решать поставленную задачу. Для правильного выполнения программы команды должны поступать в строго определенном порядке. Счетчик команд обеспечивает формирование адреса очередной команды, записанной в памяти. Перед выполнением программы счетчик команд необходимо загрузить адресом, указывающим на первую команду программы. Обычно, это нулевой адрес. Адрес первой команды программы посылается через регистр адреса памяти по адресной шине к схемам управления памятью, в результатее чего из памяти считывается содержимое первой команды. Далее эта команда передается в специальный регистр микропроцессора, называемый регистром команд. После извлечения команды из памяти микропроцессор автоматически дает приращение содержимому счетчика команд. Таким образом выполняется последовательность команд, расположенных в памяти одна за другой. Счетчик команд можно загрузить иным содержимым при выполнении особой группы команд. Может возникнуть необходимость выполнить часть программы, которая “выпадает” из последовательности команд основной (главной) программы. Например, такую часть программы, которая повторяется в процессе выполнения всей программы. Вместо того чтобы писать эту часть программы каждый раз, когда в ней возникает необходимость, её записывают один раз и возвращаются к ее повторному выполнению, отступая от указанной последовательности. Часть программы, выполняемая путем отступления от последовательности команд главной программы, называется подпрограммой. В данном случае в счетчик команд непосредственно записывается требуемый адрес. Схема выполнения подпрограмм.
Содержание команды | Значение СК |
Любая | |
Любая | |
Команда перехода на подпрограмму по адресу N | N |
Любая | N+1 |
Любая | … |
Команда возврата из подпрограммы | |
Любая |
Рис. Типовая структурная схема микропроцессора.
Регистр команд содержит команду в процессе ее дешифрирования и выполнения. Код команды поступает через шину данных из памяти.
Регистр адреса памяти. При каждом обращении к памяти процессор указывает адрес ячейки памяти, подлежащей использованию. В ячейке памяти может находится либо код команды, либо данные, над которыми производится действие.
Буферный регистр предназначен для временного хранения (буферирования данных).
Регистр состояния предназначен для хранения результатов некоторых проверок, осуществляемых в процессе выполнения программы. Разряды регистра состояний принимают то или иное значение при выполнении операций, использующих АЛУ и некоторые регистры. Запоминание результатов упомянутых проверок позволяет использовать программы, содержащие переходы (нарушения естественной пследовательности выполнения команд). При наличии в программе перехода по заданному признаку выполнение команды начинается с некоторой новой области памяти, то есть счетчик команд загружается новым числом. В случае условного перехода такое действие имеет место, если результаты определенных проверок совпадают с ожидаемыми значениями. Указанные результаты находятся в регистре состояния. Регистр состояния предоставляет программисту возможность организовать работу микропроцессора так, чтобы при определенных условиях менялся порядок выпонения команд. Рассмотрим наиболее часто используемые разряды регистра состояния.
1. Перенос-заем. Данный разряд указывает, что последняя выполняемая операция сопровождалась переносом или заемом (отрицательным перносом). Значение этого разряда устанавливается равным 1, если в результате сложения двух чисел имеет место перенос из старшего разряда АЛУ. Пример 10001110+11000011=01010001 и имеем перенос из старшего разряда. Заем фиксируется в регистре состояния при вычитании большего числа из меньшего. Пример.
2. Нулевой результат. Этот разряд принимает единичное значение, если после окончания операции во всех разрядах регистра результата обнаружены двоичные нули.
3. Знаковый. Принимает единичное значение, когда старший бит регистра результата становится равным 1. При выполнении арифметических операций с числами в дополнительном кодединичное значение старшего бита показывает, что в регистре находится отрицательное число.
Регистры общего назначения (РОН). Большинство МП имеют в своем составе набор регистров, используемых в качестве сверхоперативных запоминающих устройств. Так как АЛУ может совершать операции с содержимым РОН без выхода на внешнюю магистраль адресов и данных, то они происходят много быстрее, чем операции с внешней памятью. Количество РОН и возможность программного доступа к ним у разных микропроцессоров различны.
Указатель стека. Стек – набор регистров микропроцессора или ячеек опретивной памяти, откуда данные или адреса выбираются “сверху” по принципу: первым выбирается элемент, поступивший в стек последним. При записи в стек очередного слова все ранее записанные слова смещаются на один регистр вниз. При выборке слова из стека оставшиеся слова перемещаются на один регистр вверх.
Указанные процедуры иллюстрирует рисунок.
Здесь стек состоит из семи регистров. Если в стек загружается какое-либо слово, например А5, то оно записывается в верхнем регистре, а каждое из слов А1…А4 перемещается в соседние нижние регистры. Если же А5 извлекается из стека, то каждое из словА1…А4 перемещается в соседние верхние регистры. Нельзя извлечь А4 раньше А5, то есть автоматически реализуется принцип “ последний зашел – первый вышел, первый зашел – последний вышел”. Стек обычно используется в микропроцессорах для хранения адресов возврата при обращении к подпрограммам, а также для запоминания состояния внутренних регистров при обработке прерываний. Остановимся подробнее на исползовании стека при организации подпрограмм. Если в программе имеется подпрограмма, то на выполнение подпрограммы можно перейти из юбого места программы по команде CALL , где CALL – мнемоническое обозначение команды, а - любое символьное обозначение строки программы, где расположена первая команда подпрограммы. Последняя команда подпрограммы имеет обозначение RET , что означает “выход из подпрограммы”. Команда выхода из подпрограммы не имеет явного указания на адрес команды, которую нужно выполнить после этого, то есть не указан адрес возврата из подпрограммы. Так вот, при выполнении команды CALL адрес возврата из подпрограммы, а это адрес команды CALL, увеличенный на 1, сохраняется в стеке. При выполнении команды RET адрес извлекается из стека и поступает в счетчик команд, то есть далее выполняется команда, следующая в программе за командой CALL.
Таким образом процесс функционирования стека напоминает работу с пачкой документов, когда каждый новый документ кладется сверху пачки. При такой организации стека необходим специальный регистр – указатель стека (УС) для хранения адреса последнего по времени поступления элемента стека.
Здесь УС – трехразрядный регистр с двоичным представлением информации. Из рисунка видно, что УС всегда хранит адрес регистра стека, заполненного последним, или адрес “вершины стека”.
Схемы управления. Роль схем управления заключается в поддержании требуемой последовательности функционирования всех остальных его звеньев. По сигналам схем управления очередная команда извлекается из регистра команд. При этом определяется, что необходимо делать с данными, а затем обеспечивается последовательность действий для выполнения поставленной задачи.
Одна из главных функций схем управления – декодирование команды, находящейся в регистре команд, посредством дешифратора команд, который в результате выдает сигналы, необходимые для ее выполнения.
Помимо указанных выше действий схемы управления выполняют некоторые специальные функции: управление последовательностью включения питания и процессами прерываний. Прерывание – это своего рода запрос, поступающий на схемы управления от других устройств (памяти, устройств ввода-вывода). Прерывание связано с использованием внутренней шины данных микропроцессора. Схемы управления принимают решение, когда и в какой последовательности другие устройства могут пользоваться внутренней шиной данных.
Система шин. На характеристики микропроцессора большое влияние оказывает способ организации его связи с внешней средой – устройствами ввода-вывода (УВВ) и запоминающими устройствами (ЗУ). По способу организации связей с внешней средой различают микропроцессоры с мультиплексированной шиной адреса и данных и с раздельными шинами адреса и данных.
В микропроцессорах с временным мультиплексированием шины адреса-данных при обращении к внешнему устройству на общей шине какой-то промежуток времени выставляется адрес, а затем шина предоставляется данным. Такие шины требуют включения дополнительного регистра адреса (РгА), в который записывается адрес по сигналу “адрес-данные”, пока адрес находится на общей шине.
Модель 8088 – восьмишинная, в этом процессоре впервые использована сегментация данных. Оперативная память расширилась до 1Гб.
в 1981 году выпущены 80186,80188 – они сохраняли базовую архитектуру мп 8086\8088, но содержали на кристалле контроллер прямого доступа к памяти, счетчик \ таймер и контроллер прерываний, была немного расширена система команд. Однако широкого распространения эти мп не получили.
В 1982 году выпушен 80286 – новый МП мог работать в двух режимах: в режиме реального адреса или Р-режим, который предоставлял программистам новые возможности и средства.
В 1985 году разработан 80386 – первый 32-х разрядный процессор. Под него начали разрабатывать первые оболочки (windows).
windows 95 – первая полноправная операционная система.
80486 разработан в 1989 году – базовая архитектура в 32-х разрядных процессорах.
С 1993 года появились первые процессоры пентиум.
Пользовательские регистры мп общего назначения. состав и их назначение.
Регистр – последовательность бит (разрядов) входящая в состав кристалла МП и предназначенная для хранения информации.
Каждый регистр имеет длину 16 бит (одно слово) и адресуется по имени. Регистры делятся на:
1. Пользовательские (регистры которые программист использует при написании своей программы) (их 16 регистров)
2. Системные (15 регистров)
Пользовательские регистры процессоров можно поделить по назначению на следующие категории:
регистры общего назначения (8 шт);
сегментные регистры (6 шт);
Регистры общего назначения
· EAX /ax /ah /al (Accumulator register) – регистр аккумулятор.
Применяется для хранения промежуточных данных при выполнении арифметических операций. Команды умножения, деления, ввода-вывода в устройствах, могут работать только с регистром – аккумулятором.
· EBX /bx /bh /bl (Base register) — базовый регистр.
Применяется для хранения базового адреса данных, находящихся в памяти;
· ECX /cx /ch /cl (Count register) — регистр-счетчик.
Применяется в командах, производящих некоторые повторяющиеся действия. Его использование зачастую неявно и скрыто в алгоритме работы соответствующей команды. К примеру, команда организации цикла loop кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра ecx/cx;
· EDX /dx /dh /dl (Data register) — регистр данных.
Так же, как и регистр - аккумулятор, он хранит промежуточные данные. При операции ввода-вывода регистр данных может содержать адрес порта ввода-вывода (16-ти разрядный). Всего 256 портов, определяются 1-м байтом. Адресное пространство = 255байт.
Следующие два регистра используются для поддержки так называемых цепочечных операций, то есть операций, производящих последовательную обработку цепочек элементов, каждый из которых может иметь длину 32, 16 или 8 бит:
· Esi / si (Source Index register) — индекс источника.
Адресует индекс элемента данных строки источника, т.е он в цепочечных операциях содержит текущий адрес элемента в цепочке-источнике;
· Edi / di (Destination Index register) — индекс приемника (получателя).
Адресует индекс элемента данных строки приемника т.е. этот регистр в цепочечных операциях содержит текущий адрес в цепочке-приемнике. Применяется для люб. промежуточных данных. Его размер ограничен сегментом.
В архитектуре микропроцессора на программно-аппаратном уровне поддерживается такая структура данных, как стек. Для работы со стеком в системе команд МП есть специальные команды, а в программной модели МП для этого существуют специальные регистры:
· Esp / sp (Stack Pointer register) — регистр указателя стека.
Содержит указатель вершины стека в текущем сегменте стека. Стек всегда содержит адрес смещения данных. Max размер стека в обычном режиме = 64 Кб, а в защищенном - неограничен. Sp – вершина стека.
· Ebp / bp (Base Pointer register) — регистр указателя базы кадра стека.
Предназначен для организации произвольного доступа к данным внутри стека. Если адрес поместить в bp то базовые данные автоматически находятся в стеке.
3. регистр флагов. Отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Младшая часть этого регистра полностью аналогична регистру flags для i8086.
Каждая команда должна содержать сведения, необходимые для ее выполнения. Сведения кодируются. Для кодировки каждой группы сведений выделяется свое поле. Совокупность полей, содержащих необходимые сведения для выполнения требуемой операции, называют форматом команды. В формате команды должны быть определены:
● функциональное назначение операции в виде кода операции;
● адреса источников данных. В общем случае должны быть указаны адреса двух операндов;
● адрес места расположения результата;
● адрес следующей команды.
Форматы команд некоторых процессоров.
Рассмотрим в общих чертах форматы команд 8–разрядного (8080) и 16–разрядного (8086) процессоров. Длина команды кратна байту и может составлять один, два и более байт.
Достаточно простые форматы имеют команды процессора 8080 (рис. 2.7.2). Длина команд составляет от 1 до 3 байт. Код операции всегда размещается в первом байте команды. Второй и третий байты отводятся под непосредственные данные, адрес порта или ячейки памяти. В командах допускается явное задание только одного адреса памяти. Поэтому система команд процессора 8080 относится к классу одноадресных.
На рис. 2.7.3 изображены форматы команд процессора 8086. Длина команд составляет от 1 до 6 байт.
На рис. 2.7.2 и 2.7.3 обозначено: ОР — код операции; X — биты кода операции; dst , src — указатели приемника и источника данных; port — адрес порта; data — данные; addr — адрес памяти; w — тип операнда ( w = 0 — байт, w = 1 — слово); d — направление передачи ( d = 0 — «из», d = 1 — «в»); s — признак расширения байта в слово; reg — трехразрядное поле для кодирования регистров AL–BH; seg — двухразрядное поле для кодирования сегментных регистров; mod — определяет режим, заданный полем r / m (регистр/память); port 8 — короткий 8–разрядный адрес порта; disp — смещение; offset — смещение; sel — селектор; vect — вектор прерывания; v — сдвиговый флаг; cc — 4–разрядное поле, для кодирования 16 условий перехода.
Способы уменьшения формата команды.
Рассмотрим гипотетическую ситуацию. Допустим, что в формате команды:
● поле кода операций (КО) занимает 4 разряда, что позволяет закодировать 2 4 = 16 операций;
● под адреса двух операндов–источников, адрес места расположения результата, адрес следующей команды выделены поля А O 1, А O 2, АР, АСК (рис. 2.7.1) по 12 разрядов, что позволяет в каждом случае адресовать 2 12 = 4К ячеек памяти.
Как видно из рис. 2.7.1, несмотря на скромные возможности команды, ее общая длина составляет достаточно большое число (52) бит. Для сокращения количества разрядов команды часть информации должна быть задана неявно и не должна зависеть от особенностей конкретной команды.
Наиболее употребительными являются следующие способы сокращения длины кода команды:
● использование специально предусмотренных для адресации регистров: программного счетчика, указателя стека и др. Например, при выполнении команд с последовательно возрастающими адресами программный счетчик автоматически считывает из памяти следующую команду. В этом случае в формате команды отсутствует поле адреса следующей команды;
● использование неявных способов адресации. Например, при использовании неявной регистровой адресации адрес следующей команды или операнда хранится в регистре, код которого содержит значительно меньшее число разрядов, чем код исполнительного адреса;
● совмещение источника одного из операндов с приемником результата. В этом случае в формате команды исключается поле адреса результата;
● использование команд с укороченной адресацией, т. е. части адресного пространства памяти;
● использование для некоторой группы операций одного регистра. Наиболее часто для этой цели используется аккумулятор. В операциях с аккумулятором не требуется его кодировка. Например, команда ADD
В выполняет операцию сложение содержимого регистра В с аккумулятором А и в него же помещает результат. Такая команда является одноадресной. Ее формат состоит из двух полей: кода операции и адреса операнда. Однако одноадресные команды требуют дополнительных команд для предварительной загрузки операндов в аккумулятор и последующего размещения результатов в памяти;
● использование нескольких аккумуляторов (Motorola 6800, National РАСЕ, Signetic 2650). В этом случае каждая команда имеет два адреса, однако адрес источника и места назначения может быть задан другим аккумулятором. Следует отметить, что в одних процессорах все команды имеют одинаковую длину, в других — разную длину. Одинаковая длина всех команд упрощает декодирование, однако требует большего пространства, поскольку все команды должны быть такой же длины, как самая длинная. Команды могут быть короче слова, равными слову или длиннее слова. В процессорах с неймановской архитектурой команды и данные имеют одинаковую длину и поступают в процессор по шине данных. Поэтому для отличия команд отданных в процессоре предусмотрены средства, обеспечивающие:
● засылку команд (первого байта) в регистр команд с дальнейшей их дешифрацией для активизации устройства управления;
● поступление данных (последующих байт) в аккумулятор или другие регистры для обработки в АЛУ.
Читайте также: