Sfera-perm.ru

Сфера Пермь
6 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Счетчик команд процесса это

Иллюстрированный самоучитель по теории операционных систем

Адресация с использованием счетчика команд

Любой процессор предоставляет как минимум один способ такой адресации: адресация самих команд при их последовательной выборке осуществляется при помощи счетчика команд с постинкрементом. У процессоров с командами переменной длины величина постинкремента зависит от кода команды.

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

Литеральная и абсолютная адресация в PDP-11 и VAX

VAX и PDP-11 не реализуют в чистом виде ни литерального, ни абсолютного режимов адресации. Вместо этого литерал или адрес помещается в программную память непосредственно за операндом и используется, соответственно, косвенно-регистровый с постинкрементом и косвенный с постинкрементом режимы со счетчиком команд в качестве регистра. При исполнении команды счетчик команд указывает на слово, следующее за текущим отрабатываемым операндом (рис. 2.13). Использование постинкремента приводит к тому, что счетчик увеличивается на размер, соответственно, литерала или адреса, и таким образом, процессор находит следующий операнд. Этот остроумный прием можно рассматривать как своеобразный способ реализовать команды переменной длины.


Рис. 2.13. Реализация литеральной адресации через постинкрементную адресацию счетчиком команд

Использование счетчика команд в косвенно-регистровом режиме со смещением позволяет адресовать код и данные относительно адреса текущей команды. Такой режим адресации называется относительным. Программный модуль, в котором используется только такая адресация, позиционно независим: его можно перемещать по памяти, и он даже не заметит факта перемещения, если только не получит управление в процессе самого перемещения, или не будет специально проверять адреса на совпадение. Впрочем, почти такого же эффекта можно достичь базовой адресацией.

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

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

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

Пример 2.5. Реализация условного перехода с длинным смещением:

Относительные переходы в системе команд SPARC

У большинства CISC-процессоров адресное смещение в командах условного перехода ограничено одним байтом. У SPARC такие команды используют адресное поле длиной 22 бита. С учетом того факта, что команды у SPARC всегда выровнены на границу слова (4 байта), такая адресация позволяет непосредственно указать до 4М (4х220=4 194 304) команд или 16 Мбайт, т.е. целиком адресовать сегмент кода большинства реально используемых программ (рис. 2.14).


Рис. 2.14. Формат команд условного перехода и вызова процессора SPARC

Команда вызова подпрограммы у SPARC также использует адресацию относительно счетчика команд, но адресное поле у нее 30-разрядное и интерпретируется как адрес слова, а не байта. При сложении смещения и счетчика команд возможные переполнения игнорируются, поэтому такой командой можно адресовать любое слово (т. е. любую команду) в 32-разрядном адресном пространстве. На первый взгляд, неясно даже, какая польза от того, что адресация производится относительно счетчика команд, а не абсолютно.

Но в 64-разрядных процессорах SPARC v9 польза от этого большая – абсолютный 30-разрядный адрес позволял бы адресовать только первое гигаслово памяти, а относительное смещение адресует именно сегмент кода, в какой бы части 64-разрядного адресного пространства он бы ни находился. Программ, имеющих объем более одной гигакоманды, или даже половины гигакоманды, пока что не написано, поэтому 30-разрядного смещения практически достаточно для адресации в пределах любой современной программы.

Процессоры, не предоставляющие программисту прямого доступа к счетчику команд, зачастую все-таки дают возможность записывать в него произвольные значения при помощи специальных команд вычислимого перехода и вычислимого вызова. Команды вычислимого вызова широко используются для реализации указателей на функции из таблиц виртуальных методов в объектно-ориентированных языках. Главное применение команд вычислимого перехода – реализация операторов switch языка C/C++ или case языка Pascal.

23. Центральный процессор ЭВМ. Основные параметры и классификация. Микропроцессоры типа CISC, RISC, VLIW.

Основу центрального процессора ПЭВМ составляет микропроцессор(МП) — обрабатывающее устройство, служащее для арифметических и логических преобразований данных, для организации обращения к ОП и ВНУ и для управления ходом вычислительного процесса. В настоящее время существует большое число разновидностей микропроцессоров, различающихся назначением, функциональными возможностями, структурой, исполнением. Наиболее существенными классификационными различиями между ними чаще всего выступают:

назначение (микропроцессоры для серверов и мощных приложений; МП для персональных компьютеров и т.д.);

количество разрядов в обрабатываемой информационной единице (8-битные, 16-битные, 32-битные, 64-битные и др.);

технология изготовления (0.5мкм-технология; 0.35мкм; 0.25мкм; 0.18мкм; 0.13мкм; 0.07мкм, и т.п.).

Обобщенная структурная схема 32-разрядного микропроцессора x86 (серии Pentium) приведена на рис.15.3.

Условно микропроцессор можно разделить на три части: исполнительный блок (Execution Unit — EU), устройство сопряжения с системной магистралью (Bus Interface Unit — BIU) и блок управления микропроцессором (Control Unit — CU).

В исполнительном блоке находятся: арифметический блок (кэш данных — DATE CACHE, микросхемы арифметико-логического устройства — АЛУ, регистр флагов), регистры общего назначения (РОН) EAX, EBX, ECX, EDX; общие регистры ESI, EDI, ESP, EBP.

Читайте так же:
Бесплатный интернет счетчик трафика интернета

В регистре флагов каждый разряд имеет строго определенное назначение. Обычно разряды регистра флагов устанавливаются аппаратно при выполнении очередной операции в зависимости от получаемого в АЛУ результата. При этом фиксируются такие свойства получаемого результата, как нулевой результат, отрицательное число, переполнение разрядной сетки АЛУ и т.д.

Регистры общего назначения EAX, EBX, ECX, EDX имеют длину по 32 бита. Каждый из них делится на два 16-битных регистра, младший из которых имеет свое имя (что обеспечивает совместимость с 16-разрядными версиями микропроцессоров). Так, в регистре EAX содержится 16-битный регистр AX, в регистре EBX содержится регистр BX, в ECX — регистр CX, в EDX — регистр DX. Каждый из 16-битных регистров, в свою очередь, состоит из двух 8-битных регистров, имеющих свои имена. Например, АХ (аккумулятор) делится на AH и AL, регистр базы (Base Register) — BX, делится на BH и BL. Счетчик (Count Register) CX включает регистры CH и CL. Регистр данных (Data Register) DX содержит регистры DH и DL. Каждый из коротких регистров может использоваться самостоятельно или в составе регистровой пары. Условные названия (аккумулятор, регистр базы, счетчик, регистр данных) не ограничивают применения этих регистров — эти названия говорят о наиболее частом их использовании или об особенности применения того или иного регистра в той или иной команде. Буква «Н» в имени 8-битного регистра означает верхний (или старший) регистр, буква «L» — младший (т.е. младший байт 16-битного регистра или младший однобайтный регистр двухбайтного регистра).

Рис. 15.3. Обобщенная структурная схема 32-разрядного микропроцессора

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

Общие регистры — ESP, EBP, ESI, EDI также 32-битные, младшая половина которых доступна как регистры S P, B P, SI, DI.

Регистр ESP указывает на адрес вершины стека (адрес, куда будет заноситься следующая переменная командой PUSH).

Регистр ЕВР содержит адрес базы, который может использоваться при работе со стеком.

Регистр ESI — адрес источника, обычно содержит адрес начала блока информации для операций типа «переместить блок», а регистр EDI — адрес приемника (назначения) в этой операции.

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

Сегментные регистры CS, DS, ES, FS, GS, SS имеют длину по 16 бит и используются для формирования физических адресов команд и данных в основной памяти.

CS — сегмент кода исполняемой в данный момент программы.

DS — сегмент данных исполняемой программы, т.е. константы, строковые ссылки и т.д.

SS — сегмент стека исполняемой программы.

ES, FS, GS — дополнительные сегменты, которые в некоторых программах могут не использоваться.

Системные регистры GDTR и LDTR являются регистрами глобальной и локальной дескрипторных таблиц. GDTR имеет длину 48 бит, LDTR — 16 бит (точнее, 16 бит — это только «видимая» часть этого регистра).

Регистр IDTR (таблицы дескрипторов прерываний — DTR) имеет длину 48 бит, 32 из которых являются базовым адресом таблицы дескрипторов прерываний (IDT), а 16 — смещением этого адреса (пределом).

Регистр TR является регистром состояния задачи. «Видимая» его часть имеет длину 16 бит и содержит селектор дескриптора. «Скрытая» часть регистра содержит загружаемые автоматически базовый адрес точки входа, предел и атрибуты задачи.

Структурная схема блока выработки управляющих сигналов микропроцессора приведена на рис.15.4.

Основу его составляют счетчик команд, АЛУ, конвейер команд и группа управляющих, отладочных и тестовых регистров.

Регистр EIP является указателем адреса команды (Instruction Pointer), которая будет выбираться в конвейер команд в качестве очередной команды (в отечественной литературе такое устройство называется счетчик команд).

Рис. 15.4. Структурная схема блока выработки управляющих сигналов

Конвейер команд МП хранит несколько команд, что позволяет при выполнении линейных программ совместить подготовку очередной команды с выполнением текущей. Команды в конвейер команд поступают с внутренней магистрали микропроцессора и накапливаются в кэше команд. Блок предвыборки и прогнозирования переходов осуществляет трансляцию команд x86 в RISС-команды, прогнозирует последовательность исполнения команд и направляет полученные последовательности команд в соответствующие ветви конвейера команд (U,V,…). Каждый конвейер команд имеет свой буфер (память магазинного типа FIFO), из которого команды поступают в соответствующий регистр команд для исполнения.

АЛУ команд используется для вычисления физических адресов необходимых для работы микропроцессора команд и данных.

Управляющие регистры — CR0, CR1, CR2, CR3, — имеют длину по 32 бита. Эти регистры устанавливают режим работы процессора (нормальный, защищенный и т.д.), контролируют постраничное распределение памяти, и т.д. Они доступны только для привилегированных программ. Младшая часть регистра CR0 используется как слово состояния машины.

Отладочные регистры — DR0-DR7 — содержат адреса восьми точек прерывания и устанавливают, что должно произойти при достижении программой соответствующей точки прерывания. Эти регистры используются при отладке программы с помощью таких отладочных средств, как debug.exe (для реального режима) или ntsd.exe (для защищенного режима). Тестовые (контрольные) регистры TRj используются для контроля постраничной системы распределения памяти, реализуемой операционной системой.

Микропроцессоры типа CISC

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

Читайте так же:
Счетчики с групповым переносом

Для CISC-процессоров характерно:

• сравнительно небольшое число регистров общего назначения;

• большое количество машинных команд, некоторые из которых нагружены семантически аналогично операторам высокоуровневых языков программирования и выполняются за много тактов;

• большое количество методов адресации;

• большое количество форматов команд различной разрядности;

• преобладание двухадресного формата команд;

· наличие команд обработки типа регистр-память.

Организация первых моделей процессоров — i8086/8088 — была направлена, в частности, на сокращение объёма программ, критичного для систем того времени, отличавшихся малой оперативной памятью. Расширение спектра операций, реализуемых системой команд, позволило уменьшить размер программ, а также трудоёмкость их написания и отладки. Однако увеличение числа команд повысило трудоёмкость разработки их топологических и микропрограммных реализаций. Последнее проявилось в удлинении сроков разработки CISC-процессоров, а также в проявлении различных ошибок в их работе. Кроме того, нерегулярность потока команд ограничила развитие топологии временным параллелизмом обработки инструкций на конвейере “выборка команды- дешифрация команды- выборка данных- вычисление- запись результата”.

Эти недостатки обусловили необходимость разработки альтернативной архитектуры, нацеленной, прежде всего, на снижение нерегулярности потока команд уменьшением их общего количества. Это было реализовано в RISC-процессорах, название которых означает “чипы с сокращённой системой команд” (Reduced Instruction Set Computer).

RISC — Reduced Instruction Set Computer – архитектура компьютера с сокращенным набором команд. RISC-архитектура предполагает реализацию в ЭВМ сокра­щенного набора простейших, но часто употребляемых команд, что позволяет упростить аппаратурные средства процессора и благодаря этому получить возможность повысить его быстро­действие.

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

упрощенный набор команд, имеющих одинаковую длину.

Отсутствуют макрокоманды, усложняющие структуру процессора и уменьшающую скорость его работы.

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

Уменьшено число способов адресации

Используется конвейер команд.

Применяется высокоскоростная память.

Новый подход к архитектуре команд процессора значительно сократил площадь, требуемой для него на кристалле интегральной микросхемы. Это позволило резко увеличить число регистров (более 100 по лекциям, а вообще в типовых RISC-процессорах реализуются 32 или большее число регистров по сравнению с 8 — 16 регистрами в CISC-архитектурах). В результате процессор стал на 20-30% реже обращаться к оперативной памяти. Упростилась топология процессора, сократились сроки ее разработки, она стала дешевле.

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

Наиболее широко используемые в настольных компьютерах процессоры архитектуры x86 ранее являлись CISC-процессорами, однако новые процессоры, начиная с Intel 486DX, являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции x86-процессоров в более простой набор внутренних инструкций RISC.

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

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

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

VLIW – появилась в России. Она не попадает под принципы фон Неймана (нарушает принцип программного управления, т.е. последовательного выполнения команд).

Архитектура ЭВМ с длинным командным словом (VLIW – Very Long Instruction Word) позволяет сократить объем оборудования, требуемого для реализации параллельной выдачи несколько команд, базируется на множестве независимых командных устройств. Вместо того чтобы выдавать на эти устройства последовательные команды, операции упаковываются в одну очень длинную команду. Ответственность за вывод параллельно выдаваемых для выполнения команд полностью ложится на компилятор.

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

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

Примеры процессоров на этой архитектуре – Intel Itanium (архитектура IA-64, Merced), микропроцессоры серии «Эльбрус» («Эльбрус 2000», «Эльбрус S»).

Счетчик команд и регистр указателя данных

Счетчик команд (РС) предназначен для формирования текущего 16-разрядного адреса программной памяти и 8/16-разрядного адреса внешней памяти данных (ВПД).

В состав счетчика команд входят:

1. Шестнадцатиразрядный буфер РС;

2. Регистр счетчика команд;

3. Схема инкремента;

4. Регистр адреса памяти.

Буфер РС осуществляет связь между 16-ти разрядной адресной шиной и 8-ми разрядной внутренней шиной данных, обеспечивая запись, хранение и коммутирование информации.

В регистре счетчика команд хранится адрес текущей команды.

Схема инкремента увеличивает текущее значение регистра РС на 1.

Регистр адреса памяти предназначен для записи и хранения исполнительного 16-ти разрядного адреса памяти программ или 8/16-ти разрядного адреса ВПД, а также для передачи данных в порт Р0 при выполнении команд MOVX@RI и MOVX@DPTR, A, обеспечивающих запись данных через порт Р0 во внешние устройства.

Регистр указателя данных (DPTR) предназначен для хранения 16-разрядного адреса ВПД. Состоит из двух 8-разрядных регистров DPH и DPL, входящих в блок регистров специальных функций. Они программно доступны и могут использоваться в качестве двух независимых РОН, если нет необходимости хранения 16-разрядного адреса ВПД.

Читайте так же:
Передать данные счетчика по воде личный кабинет

Регистр указателя стека

Регистр указателя стека SP МК51 восьмиразрядный. Он может адресовать любую область резидентной памяти данных. В отличие от микропроцессора К580ВМ80, в МК51 стек “растет вверх”, т.е. перед выполнением команды PUSH или CALL содержимое SP инкрементируется, после чего производится запись информации в стек. Соответственно при извлечении информации из стека регистр SP декрементируется после извлечения информации. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.

Таймеры/счетчики

Таймер/счетчик (Т/С) предназначен для подсчета внешних событий, формирования программно-управляемых временных задержек и выполнения времязадающих функций МК51. В состав Т/С входят:

1. Два 16-разрядных регистра T/C0 и T/C1;

2. Восьмиразрядный регистр режимов (TMOD);

3. Восьмиразрядный регистр управления (TCON);

4. Схема инкремента;

5. Схема фиксации , , T0 , T1;

6. Схема управления флагами;

7. Логика управления Т/C .

Регистры T/C0 и T/C1 состоят из пары 8-разрядных регистров. Регистр T/C0 состоит из ТН0 и ТL0, а регистр T/C1 — ТН1 и ТL1. Регистры ТН0 и ТН1 — старшие , а ТL0 и ТL1 — младшие . Каждый 8-разрядный регистр имеет свой адрес и может использоваться как РОН, если Т/С не используются.

Код величины начального счета заносится в Т/C программно. В процессе счета содержимое Т/C инкрементируется. Признаком окончания счета является переполнение регистра, т. е. переход из состояния все 1 в состояние все 0. Все регистры доступны для чтения и, при необходимости, контроль достижения заданной величины счета может выполняться программно.

Регистр режимов Т/C (TMOD) предназначен для приема и хранения кода, который определяет:

— один из 4-х режимов работы Т/C;

— работу в качестве таймера или счетчика;

— управление Т/C от внешнего вывода.

Обозначение разрядов регистра TMOD приведено в табл.1.4, а в табл.1.5 – их назначение.

Таблица 1.4. Обозначение разрядов TMOD

Номер разряда
ОбозначениеGATE1C/T1M1.1M0.1GATE0C/T0M1.0M0.0
Номер разрядаОбозначениеНазначение разрядовПримечание
1, 0 5, 4M1.0, M0.0 M1.1, M0.1Определяют один из 4-х режимов работы, отдельно для Т/С0 и Т/С1Все разряды TMOD устанавливаются программно: разряды 0…3 определяют режим работы Т/С0, разряды 4…7 – Т/С1
M1M0Режим
С/Т0 С/Т1Если разряды С/Т установлены в 0, то соответствующий Т/С работает в качестве таймера. При установке этих битов в 1 – в качестве счетчика внешних событий
GATE0 GATE1Разрешает управление Т/С от внешнего вывода ( — для Т/С0, — для Т/С1) GATE = 0 – управление запрещено GATE = 1 – управление разрешено

При работе в качестве таймера содержимое регистра Т/C инкрементируется в каждом машинном цикле, т. е. Т/C является счетчиком машинных циклов МК51 с частотой .

При работе в качестве счетчика внешних событий содержимое Т/C инкрементируется после перехода из 1 в 0 сигнала на счетном входе Т0 или Т1. Так для распознавания такого перехода требуется два машинных цикла, то максимальная частота счета равна

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

Регистр управления (TCON)предназначен для приема и хранения кода управляющего слова. Флаги переполнения TF0 и TF1 устанавливаются при переполнении соответственно Т/C0 и Т/С1. Если при этом разрешено прерывание от соответствующего Т/C, то установка флага вызовет прерывание. Сбрасываются флаги аппаратно при передаче управления программе обработке соответствующего прерывания.

Обозначение разрядов регистра TCON приведено в табл. 1.6, а их назначение – в табл. 1.7.

Таблица 1.6. Обозначение разрядов регистра TCON

Номер разряда
ОбозначениеTF1TR1TF0TR0IE1IT1IE0IT0

Таблица 1.7. Назначение разрядов регистра TCON

РазрядИмяНазначение битов
TCON.7 TCON.5TF1 TF0Флаги переполнения Т/С. Устанавливается аппаратно при переполнении Т/С. Сбрасывается при обслуживании прерывания.
TCON.6 TCON.4TR1 TR0Биты управления Т/C. Если TR=0, то Т/C блокированы. При установке в единицу разрешен счет.
TCON.3 TCON.1IE1 IE0Флаги запроса внешних прерываний.
TCON.2 TCON.0IT1 IT0Биты установки фронта/уровня прерываний. Если IT=0 , то прерывание воспринимается по низкому уровню на входе INT. Если же IT=1 , то по срезу (переход из 1 в 0).

Флаги TF0 и TF1 программно доступны и могут быть установлены/сброшены программой. Используя этот механизм, можно программно вызвать (установить TF) или отменить (сбросить TF) вызов подпрограммы прерываний.

Флаги IE0, IE1 устанавливаются аппаратно от внешних источников прерываний, подключенных к внешним выводам , . Кроме этого их можно установить программно. Установка флагов IE0, IE1 приведет к вызову подпрограммы обработки прерываний, сброс этих флагов выполняется аппаратно при обслуживании прерывания, только в том случае, если прерывание было вызвано срезом сигнала (IT=1). Если прерывание было вызвано уровнем сигнала (IT=0) на входе INT, то сброс флага IE осуществляется источником прерывания под управлением подпрограммы обработки прерываний.

Схема инкремента предназначена для увеличения на 1 содержимого Т/C, для которых разрешена работа в режиме таймера или счетчика внешних событий.

Схема фиксации , , T0, T1 представляет собой 4 триггера, в которые записывается информация с этих выводов МК51.

Схема управления флагами устанавливает или сбрасывает флаги переполнения Т/C и флаги запросов внешних прерываний.

Логика управления Т/C синхронизирует работу регистров Т/C в соответствии с запрограммированным режимом работы .

Счетчик команд и регистр указателя данных

Счетчик команд (РС) предназначен для формирования текущего 16-разрядного адреса программной памяти и 8/16-разрядного адреса внешней памяти данных (ВПД).

В состав счетчика команд входят:

1. Шестнадцатиразрядный буфер РС;

2. Регистр счетчика команд;

3. Схема инкремента;

4. Регистр адреса памяти.

Буфер РС осуществляет связь между 16-ти разрядной адресной шиной и 8-ми разрядной внутренней шиной данных, обеспечивая запись, хранение и коммутирование информации.

Читайте так же:
Установка общедомовых счетчиков за счет собственников жилья

В регистре счетчика команд хранится адрес текущей команды.

Схема инкремента увеличивает текущее значение регистра РС на 1.

Регистр адреса памяти предназначен для записи и хранения исполнительного 16-ти разрядного адреса памяти программ или 8/16-ти разрядного адреса ВПД, а также для передачи данных в порт Р0 при выполнении команд MOVX@RI и MOVX@DPTR, A, обеспечивающих запись данных через порт Р0 во внешние устройства.

Регистр указателя данных (DPTR) предназначен для хранения 16-разрядного адреса ВПД. Состоит из двух 8-разрядных регистров DPH и DPL, входящих в блок регистров специальных функций. Они программно доступны и могут использоваться в качестве двух независимых РОН, если нет необходимости хранения 16-разрядного адреса ВПД.

Регистр указателя стека

Регистр указателя стека SP МК51 восьмиразрядный. Он может адресовать любую область резидентной памяти данных. В отличие от микропроцессора К580ВМ80, в МК51 стек “растет вверх”, т.е. перед выполнением команды PUSH или CALL содержимое SP инкрементируется, после чего производится запись информации в стек. Соответственно при извлечении информации из стека регистр SP декрементируется после извлечения информации. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.

Таймеры/счетчики

Таймер/счетчик (Т/С) предназначен для подсчета внешних событий, формирования программно-управляемых временных задержек и выполнения времязадающих функций МК51. В состав Т/С входят:

1. Два 16-разрядных регистра T/C0 и T/C1;

2. Восьмиразрядный регистр режимов (TMOD);

3. Восьмиразрядный регистр управления (TCON);

4. Схема инкремента;

5. Схема фиксации , , T0 , T1;

6. Схема управления флагами;

7. Логика управления Т/C .

Регистры T/C0 и T/C1 состоят из пары 8-разрядных регистров. Регистр T/C0 состоит из ТН0 и ТL0, а регистр T/C1 — ТН1 и ТL1. Регистры ТН0 и ТН1 — старшие , а ТL0 и ТL1 — младшие . Каждый 8-разрядный регистр имеет свой адрес и может использоваться как РОН, если Т/С не используются.

Код величины начального счета заносится в Т/C программно. В процессе счета содержимое Т/C инкрементируется. Признаком окончания счета является переполнение регистра, т. е. переход из состояния все 1 в состояние все 0. Все регистры доступны для чтения и, при необходимости, контроль достижения заданной величины счета может выполняться программно.

Регистр режимов Т/C (TMOD) предназначен для приема и хранения кода, который определяет:

— один из 4-х режимов работы Т/C;

— работу в качестве таймера или счетчика;

— управление Т/C от внешнего вывода.

Обозначение разрядов регистра TMOD приведено в табл.1.4, а в табл.1.5 – их назначение.

Таблица 1.4. Обозначение разрядов TMOD

Номер разряда
ОбозначениеGATE1C/T1M1.1M0.1GATE0C/T0M1.0M0.0
Номер разрядаОбозначениеНазначение разрядовПримечание
1, 0 5, 4M1.0, M0.0 M1.1, M0.1Определяют один из 4-х режимов работы, отдельно для Т/С0 и Т/С1Все разряды TMOD устанавливаются программно: разряды 0…3 определяют режим работы Т/С0, разряды 4…7 – Т/С1
M1M0Режим
С/Т0 С/Т1Если разряды С/Т установлены в 0, то соответствующий Т/С работает в качестве таймера. При установке этих битов в 1 – в качестве счетчика внешних событий
GATE0 GATE1Разрешает управление Т/С от внешнего вывода ( — для Т/С0, — для Т/С1) GATE = 0 – управление запрещено GATE = 1 – управление разрешено

При работе в качестве таймера содержимое регистра Т/C инкрементируется в каждом машинном цикле, т. е. Т/C является счетчиком машинных циклов МК51 с частотой .

При работе в качестве счетчика внешних событий содержимое Т/C инкрементируется после перехода из 1 в 0 сигнала на счетном входе Т0 или Т1. Так для распознавания такого перехода требуется два машинных цикла, то максимальная частота счета равна

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

Регистр управления (TCON)предназначен для приема и хранения кода управляющего слова. Флаги переполнения TF0 и TF1 устанавливаются при переполнении соответственно Т/C0 и Т/С1. Если при этом разрешено прерывание от соответствующего Т/C, то установка флага вызовет прерывание. Сбрасываются флаги аппаратно при передаче управления программе обработке соответствующего прерывания.

Обозначение разрядов регистра TCON приведено в табл. 1.6, а их назначение – в табл. 1.7.

Таблица 1.6. Обозначение разрядов регистра TCON

Номер разряда
ОбозначениеTF1TR1TF0TR0IE1IT1IE0IT0

Таблица 1.7. Назначение разрядов регистра TCON

РазрядИмяНазначение битов
TCON.7 TCON.5TF1 TF0Флаги переполнения Т/С. Устанавливается аппаратно при переполнении Т/С. Сбрасывается при обслуживании прерывания.
TCON.6 TCON.4TR1 TR0Биты управления Т/C. Если TR=0, то Т/C блокированы. При установке в единицу разрешен счет.
TCON.3 TCON.1IE1 IE0Флаги запроса внешних прерываний.
TCON.2 TCON.0IT1 IT0Биты установки фронта/уровня прерываний. Если IT=0 , то прерывание воспринимается по низкому уровню на входе INT. Если же IT=1 , то по срезу (переход из 1 в 0).

Флаги TF0 и TF1 программно доступны и могут быть установлены/сброшены программой. Используя этот механизм, можно программно вызвать (установить TF) или отменить (сбросить TF) вызов подпрограммы прерываний.

Флаги IE0, IE1 устанавливаются аппаратно от внешних источников прерываний, подключенных к внешним выводам , . Кроме этого их можно установить программно. Установка флагов IE0, IE1 приведет к вызову подпрограммы обработки прерываний, сброс этих флагов выполняется аппаратно при обслуживании прерывания, только в том случае, если прерывание было вызвано срезом сигнала (IT=1). Если прерывание было вызвано уровнем сигнала (IT=0) на входе INT, то сброс флага IE осуществляется источником прерывания под управлением подпрограммы обработки прерываний.

Читайте так же:
Посмотреть плата по счетчику

Схема инкремента предназначена для увеличения на 1 содержимого Т/C, для которых разрешена работа в режиме таймера или счетчика внешних событий.

Схема фиксации , , T0, T1 представляет собой 4 триггера, в которые записывается информация с этих выводов МК51.

Схема управления флагами устанавливает или сбрасывает флаги переполнения Т/C и флаги запросов внешних прерываний.

Логика управления Т/C синхронизирует работу регистров Т/C в соответствии с запрограммированным режимом работы .

Дата добавления: 2016-11-26 ; просмотров: 3405 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Команды загрузки регистра указателя стека

4.1 Команда непосредственной загрузки регистра указателя стека имеет вид:

где – значение операнда;

Записать в память, начиная с адреса 0820H, коды команды, которые указаны в таблице 7.

Таблица 7 – Контрольная команда непосредственной загрузки указателя стека

АдресКомандаОперандМашинный кодКомментарий
LXISP, 0B10H31 10 0B; Загр. указ. стека SP=0B10H
HLT; Останов

4.2 Выполнить эту команду:

4.3 Проверить содержимое регистра указателя стека. Значение старшего байта должно быть (SPH)=0BH, значение младшего байта (SPL)=10H.

4.4 Команда косвенной загрузки регистра указателя стека:

По этой команде в указатель стека загружается содержимое регистровой пары HL. Поэтому, чтобы в указатель стека загрузить, например число 0B30H, его предварительно надо загрузить в регистровую пару HL.

4.5 Записать в память, начиная с адреса 0830H, коды следующих команд, которые указаны в таблице 8.

Таблица 8 – Контрольная последовательность команд косвенной загрузки указателя стека

АдресКомандаОперандМашинный кодКомментарий
LXIH, 0B30H21 30 0B; Загр. HL=0B30H
SPHLF9; Загр. SP=HL
HLT; Останов

4.6 Выполнить эту последовательность команд:

4.7 Проверить содержимое регистра указателя стека. Значение старшего байта должно быть (SPH)=0BH, значение младшего байта – (SPL)=30H.

Задание 3:

1 Написать и выполнить программы загрузки регистра указателя стека:

а) командой непосредственной загрузки:

Команду записать в таблицу, аналогичную по форме таблице 7 (начальный адрес проверочной программы 0920H).

б) используя команду косвенной загрузки:

Последовательность команд записать в таблицу, аналогичную по форме таблице 8 (начальный адрес проверочной программы 0930H).

2 Проверить и записать в отчет содержимое регистра SP.

Команды пересылки

Общий вид команды:

где ri – идентификатор регистра-приемника: A, B, C, D, E, H, L;

rj – идентификатор регистра-источника: A, B, C, D, E, H, L.

5.1 Записать в память, начиная с адреса 0840H, коды последовательности команд, которые указаны в таблице 9.

Таблица 9 – Контрольная последовательность команд пересылки

АдресКомандаОперандМашинный кодКомментарий
MVIA, 0FH3E 0F; Загр. рег. A=0FH
MOVB, A; Пересылка B (A)
MOVC, B; Пересылка C (B)
MOVD, C; Пересылка D (C)
MOVE, D5A; Пересылка E (D)
MOVH, E; Пересылка H (E)
MOVL, H6C; Пересылка L (H)
HLT; Останов

5.2 Выполнить эту последовательность команд:

5.3 Проверить содержимое регистров. Их значения должны быть равны 0FH.

Задание 4:

1 Написать и выполнить программу пересылки, предварительно загрузив регистры H (значением 3EH), C (7AH), D (5BH):

B H (3EH), E C (7AH), L D (5BH).

Последовательность команд записать в таблицу, аналогичную по форме таблице 9 (начальный адрес проверочной программы 0940H).

2 Проверить содержимое регистров и записать в отчет.

Команда загрузки счетчика команд PCHL

По этой команде в счетчик команд записывается содержимое пары регистров HL. Таким образом, для того чтобы загрузить в счетчик команд адрес 0900H, необходимо сначала это число загрузить в регистровую пару HL и затем выполнить команду PCHL.

6.1 Записать в память, начиная с адреса 0850H, коды последовательности команд, указанных в таблице 10.

Таблица 10 – Контрольная последовательность команд загрузки счетчика команд

АдресКомандаОперандМашинный кодКомментарий
LXIH, 0900H21 00 09; Загр. HL=0900H
PCHLE9; Загр. счетчика команд ; PC=HL. Переход на адрес ; 0900H.
HLT; Останов

6.2 Выполнить эту последовательность команд:

На дисплее появится адрес 0900H. Это будет означать, что в счетчик команд загружен адрес 0900H и осуществлен переход на этот адрес. Проверить содержимое счетчика команд. Значение старшего байта должно быть (PСH)=09H, значение младшего байта (PСL)=00H.

Задание 5:

1 Написать и выполнить программу перехода на адрес 0963H с адреса 0950H. Последовательность команд записать в таблицу, аналогичную по форме таблице 10 (Начальный адрес проверочной программы 0950H).

2 Проверить и записать в отчет содержимое счетчика команд PC.

ЛАБОРАТОРНАЯ РАБОТА № 15

МЕТОДЫ АДРЕСАЦИИ ПАМЯТИ. КОМАНДЫ РАБОТЫ С ПАМЯТЬЮ

Цель работы

1 Изучить команды работы с памятью в микропроцессоре (МП) КР580ВМ80.

2 Приобрести практические навыки составлять программы, содержащие команды работы с памятью.

3 Приобрести практические навыки ввода программы в учебный микропроцессорный комплект (УМК), ее отладки и выполнения в автоматическом режиме.

Подготовка к выполнению работы

1 Повторить по [2] команды работы с памятью.

2 Изучить методические указания к данной лабораторной работе и составить проверочные программы для заданий №1…5. Подготовить бланк отчета (см. содержание отчета).

3 Подготовить ответы на вопросы для самоконтроля.

Вопросы для самоконтроля

1 Укажите методы адресации к памяти в МП КР580ВМ80 и поясните их суть.

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

а) MOV A,M; б) MVI M,10H; в) STA 0910H; г) LDA 0A00H;

д) STAX B; е) LDAX B?

3 Укажите выполняемую операцию для вышеуказанных команд.

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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector