Временная диаграмма выполнения инструкций 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Временная диаграмма выполнения инструкций



ЦПУ AVR синхронизируется сигналом CLKCPU. Внутреннее деление частоты этого сигнала не предусмотрено. На рисунке 3.2 демонстрируется параллелизм выборки одной инструкции и исполнения другой. Такой механизм стал возможным, благодаря использованию Гарвардской архитектуры и концепции, обеспечивающей быстродействие доступа к данным в регистровом файле. В конечном счете, такая концепция простой конвейеризации позволяет добиться производительности близкой к 1 MIPS/МГц и, как следствие, получить уникальные соотношения функциональности со стоимостью решения, частотой синхронизации и энергопотреблением.

Рисунок 3.2. Параллельность выборки и выполнения инструкций

На рисунке 3.3 представлена временная диаграмма доступа АЛУ к регистровому файлу. За один цикл синхронизации, который требуется для выполнения операции в АЛУ, выполняется операция над двумя регистрами-операндами, а результат возвращается в регистр-назначение.

Рисунок 3.3. Операция в АЛУ выполняется за один цикл синхронизации

Регистр статуса

В регистре статуса (SREG) хранится информация относительно результата большинства ранее выполненных арифметических или логических инструкций. Данная информация необходима для выполнения операций условия, которые управляют программным потоком. Обратите внимание, что регистр статуса обновляется после выполнения любой операции АЛУ в объеме, указанном в описании набора инструкций. Благодаря этому, во многих случаях исчезает необходимость использования специальных инструкций сравнения, что делает код программы более компактным, а его выполнение более быстрым.

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

Регистр статуса доступен в пространстве памяти ввода-вывода.

Стек и указатель стека

Стек необходим для запоминания адресов возврата из процедур обработки прерывания и подпрограмм. Его также можно использовать для временного хранения данных. Регистр указателя стека (SP) постоянно указывает на вершину стека. Он реализован в виде двух 8-битных регистров, доступных в пространстве памяти ввода-вывода. Данные помещаются в стек и извлекаются из него посредством инструкций PUSH и POP. Увеличение стека происходит в направлении от старших ячеек памяти к младшим. Таким образом, при помещении данных в стек содержимое регистра SP уменьшается, а при извлечении данных - увеличивается. После сброса, SP автоматически инициализируется значением, которое равно максимальному адресу внутреннего SRAM. При необходимости изменения SP нужно учитывать, что помещаемый в него адрес должен лежать выше 0x2000, а само изменение нужно выполнить перед вызовом каких-либо подпрограмм или разрешением прерываний.

При вызове подпрограмм или при переходе по вектору прерываний адрес возврата автоматически помещается в стек. Адрес возврата может быть представлен двумя или тремя байтами, что зависит от размера памяти микроконтроллера. У МК с памятью программ 128 кбайт и менее адрес возврата двухбайтный, поэтому, указатель стека декрементируется/инкрементируется на два. У тех же микроконтроллеров, которые оснащены памятью программ размером более 128 кбайт, адрес возврата трехбайтный, а декрементирование/инкрементирование SP выполняется на три. Адрес возврата извлекается из стека при выходе из прерывания по инструкции RETI, а из подпрограммы по инструкции RET.

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

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

Регистровый файл

Регистровый файл образован 32 8-битными регистрами общего назначения. Чтобы добиться требуемых быстродействия и гибкости, регистровый файл поддерживает следующие схемы ввода-вывода:

1. Вывод одного 8-битного операнда и ввод одного 8-битного результата

2. Вывод двух 8-битных операндов и ввод одного 8-битного результата

3. Вывод двух 8-битных операндов и ввод одного 16-битного результата

4. Вывод одного 16-битного операнда и ввод одного 16-битного результата

Рисунок 3.4. Рабочие регистры общего назначения ЦПУ AVR

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

Регистры X, Y и Z

Регистры R26..R31, помимо регистров общего назначения, имеют еще одно дополнительное назначение. Данные регистры можно использовать, как 16-битные указатели адреса для адресации памяти данных. Три таких регистра получили название регистров X, Y и Z. Z-регистр можно также использовать в качестве указателя адреса для чтения и/или записи Flash-памяти программ, сигнатурного кода, конфигурационных бит (Fuse-биты) и бит защиты (Lock-биты).

Рисунок 3.5. Регистры X, Y и Z

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



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 339; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.240.243 (0.006 с.)