Студопедия — Функционирование конвейера
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Функционирование конвейера






Как и во всех микроконтроллерах AVR, в микроконтроллере ATmega128 используется конвейерная обработка команд. Функционирование конвейера показано на Рис. 1.6

$<

 

Рис. 1.6. Последовательность выполнения команд в конвейере

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

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

При выполнении команд типа Test & Skip, следующая команда не выполняется в случае истинности проверяемого условия. Однако выборка пропускаемой команды уже произошла. Вследствие того что команда не выполняется, в конвейере образуется «дырка», которая заключается в пропуске

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

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

Стек

В микроконтроллере ATmega128 стек реализован программно. Он размещается в памяти данных, и его глубина определяется только размером свободной области памяти программ. В качестве указателя стека используется пара регистров ввода/вывода SPH:SPL, расположенных по адресам $3E ($5E) и $3D ($5D) соответственно. Так как после подачи напряжения питания (или после сброса) в регистрах содержится нулевое значение, в самом начале программы указатель стека необходимо проинициализировать, записав в него значение верхнего адреса памяти данных.

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

Стек доступен программно. Для работы со стеком в наборе команд имеется две команды: команда занесения в стек (PUSH) и команда извлечения из стека (POP).

 

 

Глава 2

 







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



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

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

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

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия