Лекция № 10 (Лекции МП)

2018-01-12СтудИзба

Описание файла

Файл "Лекция № 10" внутри архива находится в папке "Лекции МП". Документ из архива "Лекции МП", который расположен в категории "". Всё это находится в предмете "микропроцессоры" из 7 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "микропроцессоры" в общих файлах.

Онлайн просмотр документа "Лекция № 10"

Текст из документа "Лекция № 10"

ЛЕКЦИЯ № 10.

Автоматическая генерация адресов операндов.

Структурная схема устройства генерации адреса (УГА):

В организации каждого адреса участвуют R, N и М:

R0 – R7 – регистры адреса.

N0 – N7 – регистры смещения.

М0 – М7 – регистры типа арифметики.

R0 – R3, N0 – N3, M0 – M3 – определяют адрес Х.

R4 – R7, N4 – N7, M4 – M7 – определяют адрес Y.

Тип арифметики определяется содержимым регистра типа арифметики.

При вычислении модифицированного адреса может использоваться один из следующих типов арифметики:

  • линейная;

  • модульная;

  • бит-реверсивная (с обратным переносом).

Без устройства генерации адреса (УГА) сам блок МАС будет бессмысленным.

Модификация адреса.

Модификация (изменение) адреса означает автоматическое вычисление нового адреса, выполняемое в УГА независимо от основной операции команды. Модификация адреса может производиться как до, так и после выполнения основной операции.

Способы модификации адреса для линейной и модульной арифметики:

1) Без модификации:

MOVE X0, X: (R0) (X0) → X: ((R0))

По этой команде: содержимое входного регистра X0 передаётся в память Х по косвенно указанному адресу, который определяется регистром R0.

2) Постинкрементная на 1:

MOVE X1, Y: (R5) + (X1) → Y: ((R5)) (R5) + 1 → (R5)

По этой команде: содержимое входного регистра X1 передаётся в память Y по косвенно указанному адресу, который определяется регистром R5. После этого, содержимое регистра адреса R5 автоматически увеличивается на единицу и записывается в регистр R5. Следовательно: исполняемый адрес в данной команде не изменяется.

3) Постдекрементная на 1:

MOVE Y0, X: (R1) – (Y0) → X ((R1)) (R1) – 1 → (R1)

По этой команде: содержимое входного регистра Y0 передаётся в память X по косвенно указанному адресу, который определяется регистром R1. После этого, содержимое регистра адреса R1 автоматически уменьшается на единицу и записывается в регистр R1. Следовательно: исполняемый адрес в данной команде не изменяется.

4) Преинкрементная на 1:

В процессорах фирмы Motorola DSP560xx данный тип модификации отсутствует.

5) Предекрементная на 1:

MOVE A1, X: – (R2) (R2) – 1 → (R2) (A1) → X: ((R2))

По этой команде: перед выполнением команды содержимое регистра адреса R2 автоматически уменьшается на единицу и записывается в регистр R2. После этого, содержимое части аккумулятора А1 передаётся в память X по косвенно указанному адресу, который определяется регистром R2.

Следовательно: перед выполнением команды вычисляется новый исполняемый адрес.

6) Постинкрементная на N:

MOVE A0, X: (R2) + N2 (A0) → X: ((R2)) (R2) + N2 → (R2)

По этой команде: содержимое части аккумулятора А0 передаётся в память X по косвенно указанному адресу, который определяется регистром R2. После этого, содержимое регистра адреса R2 автоматически увеличивается на целое число N2 и записывается в регистр R2. Следовательно: исполняемый адрес в данной команде не изменяется.

7) Постдекрементная на N:

MOVE B1, Y: (R6) – N6 (B1) → Y: ((R6)) (R6) – N6 → (R6)

По этой команде: содержимое части аккумулятора B1 передаётся в память Y по косвенно указанному адресу, который определяется регистром R6. После этого, содержимое регистра адреса R6 автоматически уменьшается на целое число N6 и записывается в регистр R6.

Следовательно: исполняемый адрес в данной команде не изменяется.

8) Индексация (указание) адреса:

Индексация (указание) адреса означает автоматическое изменение исполняемого адреса без изменения содержимого регистра адреса и смещения N.

MOVE B0, X: (R0 + N0) B0 → X: ((R0 + N0))

По этой команде: содержимое части аккумулятора B0 передаётся в память X по косвенно указанному адресу, который вычисляется сложением содержимого регистра адреса R0 и смещения N0. После выполнения команды содержимое регистров R0 и N0 не меняется.

Примечание:

В командах имя регистра в круглых скобках - соответствует содержимому этого регистра.

Косвенная адресация с пост- и предекрементами/преинкрементами на 1 обеспечивает простую организацию программного обращения к соседним элементам массива в памяти данных. А постдекремент/постинкремент адреса на N обеспечивает простую организацию программного обращения к произвольным элементам массива в памяти данных. При этом число N, называемое смещением, хранится в регистре смещения.

Модульная арифметика.

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

а = А mod M

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

а = А mod M

b = B mod M

Числа А и В считаются равными (сравнимыми) между собой по mod M, если аb, где символ «≡», называемый сравнением, имеет тот же смысл, что и символ равенства в линейной арифметике.

Например, числа 373 и 693 по mod 20 равны (сравнимы) между собой:

373 ≡ 693 ≡ 13 mod 20

По mod 2 равны между собой все четные числа (0 mod 2) и нечетные числа (1 mod 2) и т.д.

Применение модульной арифметики.

Многие алгоритмы ЦОС представляют собой циклическую обработку блока данных фиксированной длины. Для хранения таких данных в памяти выделяется область заданного объема, которую называют буфером. Данные могут поступать в буфер извне или вычисляться в цикле. Организация последовательной записи данных в буфер или считывания из буфера представляет собой циклический буфер.

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

Адресацию операнда называют циклической, если исполняемый адрес вычисляется по правилам модульной арифметики.

Рассмотрим организацию циклического буфера. Укажем его размер: М ячеек памяти данных. Это значение (либо на 1 меньшее, М – 1, как в процессорах фирмы Motorola) записывается в регистр типа арифметики, который в процессорах различных фирм имеет собственные имена и обозначения.

Рассмотрим вычисление исполняемого адреса при циклической адресации, для чего введем понятие относительного адреса в циклическом буфере. Будем называть относительными адреса ячеек буфера, не учитывающие его местоположение в пространстве памяти данных. Все относительные адреса начинаются с 0 (нижняя относительная граница буфера) и заканчиваются (М – 1) (верхняя относительная граница буфера). Очевидно, что абсолютные адреса отличаются от соответствующих относительных адресов на некоторую целую положительную константу, равную абсолютной нижней границе буфера. Она называется базой буфера и обозначается Bs (Base).

Регистр адреса при циклической адресации:

Как видно из рисунка, содержимое 16-разрядного регистра адреса (исполняемый адрес) при циклической адресации равно сумме двух 16-разрядных чисел: базы Bs и относительного адреса. Причем, база Bs содержит k нулевых младших разрядов, а относительный адрес содержит (16 – k) нулевых старших разрядов.

Количество k младших разрядов в регистре адреса, отводимое для хранения относительного адреса, определяется по заданному размеру М циклического буфера из условия:

2k – 1 < М ≤ 2k

Например: при М = 5, k = 3 (22 < М < 23);

при М = 32, k = 5 (24 < М = 25);

при М = 90, k = 7 (26 < М < 27).

Полученное значение k обеспечивает адресацию содержимого ячеек циклического буфера с относительными адресами с 0–го по (2k –1), что соответствует абсолютным адресам: с базового Bs по (Bs + (2 k 1))-й. Адрес (2 k 1) называется предельной относительной границей буфера; абсолютная предельная граница равна Bs + (2 k 1). Пространство памяти буфера с относительными адресами с М-го по (2 k 1)-й включительно свободно и может использоваться для других целей.

Значение базы Bs должно быть кратным 2 k:

Bs = р 2 k, где р = 1, 2, …

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

Начальный исполняемый адрес может быть:

  • равен нижней границе буфера – k младших разрядов содержат 0;

  • равен верхней границе буфера – k младших разрядов содержат 1;

  • произвольным в границах буфера - в k младших разрядах хранится соответствующий относительный исполняемый адрес.

Тогда, следующий исполняемый адрес ЕА при постинкременте/постдекременте на N (|N| < М, чтобы не выйти за пределы буфера), согласно правилам модульной арифметики, вычисляется по формуле:

(ЕА – Bs + N) mod М + Bs, если (ЕА – Bs + N) ≥ 0

или по формуле:

(ЕА – Bs + N) mod М + Bs +М, если (ЕА – Bs + N) < 0

Пример организации циклического буфера:

После выполнения команды:

MOVE A1, X: (R0) + N0

cледующий исполняемый адрес определяется как:

((R0) – Bs + (N0)) mod М + Bs > R0

Примечание: Все адреса указаны в десятичной системе.

Размер циклического буфера М = 90; значение (М – 1) хранится в регистре М0. Количество k младших разрядов, определенное из условия:

2 k – 1 < М ≤ 2 k (26 < 90 < 27),

равно 7. База Bs (нижняя граница буфера), кратная 27, выбрана равной 128. Верхняя граница буфера равна 217 (Bs + М − 1), а предельная граница − 255 (Bs + (27 − 1)). Ячейки с 218-й по 255-ю свободны и могут быть использованы для других целей. Начальный 16-разрядный исполняемый адрес равен 165 и хранится в регистре адреса R0. Относительный исполняемый

7-разрядный начальный адрес равен 37 = 0100101(2). После первого выполнения команды следующий исполняемый адрес вычисляется как:

((R0) – Bs + (N0)) mod 90 + Bs = (165 – 128 +15) mod 90 + 128 = 180.

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

(180 – 128 +15) mod 90 + 128 = 195;

(195 – 128 +15) mod 90 + 128 = 210.

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

(210 – 128 +15) mod 90 + 128 = 135.

Бит-реверсивная арифметика (с обратным переносом).

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

Бит-реверсивная арифметика применяется в алгоритмах быстрого преобразования Фурье (БПФ) по основанию 2, когда количество исходных отсчетов L равно L = 2k.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5232
Авторов
на СтудИзбе
423
Средний доход
с одного платного файла
Обучение Подробнее