Курсовая работа: Основные способы адресации в памяти

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Воронежский государственный лесотехнический университет

имени Г.Ф. Морозова

Механический факультет

ПОЯСНИТЕЛЬНЬНАЯ ЗАПИСКА

КУРСОВОЙ РАБОТЫ

Дисциплина: Программирование микропроцессоров

Основные способы адресации в памяти

Студент группы ИС2-151-ОБ

Белов Семён Вадимович

___________________________

Руководитель, к.т.н., профессор

Зольников Константин Владимирович

___________________________

Воронеж, 2018

Оглавление

  • Введение
  • 1. Теоретичкая часть
  • 2. Практическая часть
    • Заключение
    • Список используемой литературы

Введение

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

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

  • 1. Теоретичкая часть
  • микропроцессор сигнальный программа
  • Микропроцессор фирмы Texas Instruments семейства TMS320 S40 является сигнальным процессором. Так как вся его система команд ориентирована на быстрое выполнение алгоритмов цифровой обработки сигналов. К ключевым особенностям сигнальных процессора можно отнести

1. Конвейерное выполнение команд

2. Разделение памяти программы и памяти данных

3. Основной операционных блок выполняется за один цикл

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

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

Для изучения типов адресации микропроцессора рассмотрим основные его характеристики

цикл команды 50нс для тактовой

частоты 40 МГц;

максимальный адресуемый объем

памяти 16 Gb (4GЧ32);

разрядность операндов 32 бита;

встроенные коммуникационные

порты до 20 Мб/с;

производительность до 275 MOPS;

встроенный сопроцессор прямого

доступа к памяти (ПДП) до 75 MOPS;

одноцикловые операции с плавающей точкой 40/32 бита;

внутренний кэш команд на 512 байт;

скорость обмена данными через

встроенные порты ввода/вывода до 100 Мб/с;

внутреннее ОЗУ 8 Кбайт.

В процессорах семейства TMS320 S40 возможны четыре основных режима адресации памяти данных:

1) Прямая адресация. Вся область памяти данных процессора объёмом 64К разделена на 512 страниц размером 128 16-ти разрядных слов каждая. В режиме прямой адресации, команда содержит только младшие 7 бит адреса ячейки памяти. Это поле при обработке адреса дополняется 9 битами регистра указателя страницы (DP) до полного 16-ти разрядного адреса. Таким образом, регистр DP указывает на одну из 512 возможных страниц памяти размером 128 слов, а 7-ми битовый адрес в слове команды указывает на определённую ячейку памяти на данной странице памяти. Регистр DP может быть загружен при помощи команд LDP (load data memory page pointer) или LST #0 (load status register STO).

2) Косвенная адресация. Восемь вспомогательных регистров (AR0 - AR7) обеспечивают гибкую и удобную косвенную адресацию в процессорах TMS320C5х. В случае косвенной адресации адрес операнда находится в текущем вспомогательном регистре. Для выбора текущего вспомогательного регистра необходимо загрузить в регистр указателя вспомогательного регистра (ARP) значение в диапазоне от 0 до 7.

Над содержимым вспомогательных регистров можно производить ряд арифметических операций с помощью арифметического устройства вспомогательных регистров - ARAU (Auxiliary Register Arithmetic Unit), которое выполняет арифметические операции над содержимом вспомогательных регистров в фазе декодирования команды. Это позволяет сформировать адрес перед фазой декодирования следующей команды. Использование ARAU позволяет модифицировать содержимое ARn после использования его содержимого в текущей команде, например, регистр может быть инкрементирован или декрементирован.

С помощью косвенной адресации, может быть адресована любая ячейка памяти в пределах 64К при помощи полного 16-ти разрядного значения, содержащегося во вспомогательном регистре.

Существует два основных вида модификации адреса при косвенной адресации:

- косвенная адресация с инкрементом и декрементом на 1;

- косвенная адресация с индексацией (изменением) на величину, содержащуюся в регистре INDX.

Во втором случае возможно в свою очередь два варианта:

- добавление или вычитание содержимого регистра INDX;

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

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

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

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

3) Непосредственная адресация. В случае непосредственной адресации операнд содержится непосредственно в слове команды. В процессорах `C5x имеются однословные команды с непосредственной адресацией (8-битовые, 9-битовые и 13-битовые константы) и двухсловные (16-битные константы) длинные команды с непосредственной адресацией. В коротких командах непосредственный операнд находится прямо в слове. В длинных командах непосредственный операнд содержится во втором слове.

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

Рис.1 Циклический буфер

На рисунке 1 приведен алгоритм циклической адресации. Рисунок показывает, как будет распределяться последовательность отсчетов входного сигнала в буфере длиной 6 ячеек. В таком буфере, например, можно организовать линию задержки на 5T, где T - интервал дискретизации. Для этого надо последовательно считывать отсчеты x (0) и x(5), x(1) и x(6) и т.д.

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

- CBSR1 - регистр начального адреса первого циклического буфера;

- CBSR2 - регистр начального адреса второго циклического буфера;

- CBER1 - регистр конечного адреса первого циклического буфера;

- CBER2 - регистр конечного адреса второго циклического буфера;

- CBCR - регистр управления циклическими буферами.

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

Общая схема архитектуры на примере процессора TMS3 2OC4x представлена на рис. 2

Процессор TMS320C4x имеет адресное пространство в 4G слов (4GЧ32), которое является общим для памяти программ, памяти данных и портов ввода/вывода. Карта памяти управляется уровнем на входном контакте ROMEN и для различных значений этого сигнала показана на рис.3

Рис. 2 Общая схема архитектуры

Рис. 3 Карта памяти управления уровнем на входном контакте ROMEN для различных значений

Как видно из рисунка, сигналом ROMEN управляется только начальная зона адресного пространства величиной в 1М слов. В случае ROMEN=0 - это внешняя память, доступная процессору через локальную шину, а в случае ROMEN=1 - это внутреннее ПЗУ, содержащее начальный загрузчик (адреса00000000h - 00000FFFh), который используется при загрузке программ из внешнего ПЗУ или с одного из коммуникационных портов. Работа начального загрузчика описана в п.1.12. Следующие 1М слов используются для адресации внутренних периферийных устройств: таймеров, коммуникационных портов, регистров сопроцессора ПДП и регистров управления внешними шинами

Адресное пространство 00300000h - 7FFFFFFFh принадлежит внешней локальной шине, а 80000000h-FFFFFFFFh - внешней глобальной шине. К ши нам могут подключаться память или устройства ввода/вывода с различным быстродействием. При обращении в зону адресов 00000000h - 00300000h операций на локальной шине не производится (не вырабатывается строб шины), если ROMEN = 1. Если входной сигнал ROMEN = 0, на локальной шине производится передача данных при обращении по адресам 00000000h - 000FFFFFh. Каждая шина содержит два набора сигналов, управляющих передачей данных по шине (называемых STRB0 и STRB1), и набор сигналов, управляющих доступом(в случае разделяемой памяти в МП системах).Логика работы каждой шины определяется собственным регистром управления, в котором программируется адресное пространство, размер страницы памяти, режим формирования сигнала готовности и количество тактов ожидания (0-7) для каждого из стробов STRB0 и STRB1. Адреса регистров управления внешними шинами:0010 0000h - регистр управления глобальной шиной (GMICR);0010 0004h - регистр управления локальной шиной (LMICR).

Обладая этим набором регистров можно реализовать пять типов адресации операндов

1. Регистровая

2. Прямая

3. Косвенная

4. Непосредственная

5. Относительная

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

Рис. 4 Список регистров

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

Рис. 5 Схема формирования адреса

Для формирования адреса операнда используются содержимое вспомогательных регистров AR0-AR7, смещение, указанное в слове команды и содержимое индексных регистров IR0, IR1 в различных сочетаниях. Процессор TMS320C4x имеет 26 режимов косвенной адресации. Среди них можно выделить следующие группы:

1. не модифицирующие вспомогательный регистр

2. осуществляющие модификацию вспомогательного регистра до его использования в качестве адреса

3. модифицирующие вспомогательный регистр после его использования для адресации операнда

4. использующие специальную модификацию вспомогательного регистра

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

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

Смещение перехода является целым числом со знаком. Оно вычисляется:

для стандартных переходов

СМЕЩЕНИЕ = АДРЕС ПЕРЕХОДА - (АДРЕС КОМАНДЫ ПЕРЕХОДА + 1);

для задержанных переходов (см. п.1.12)

СМЕЩЕНИЕ = АДРЕС ПЕРЕХОДА - (АДРЕС КОМАНДЫ ПЕРЕХОДА + 3

Процессор TMS320C4x не может выполнять операции типа память-память, поэтому один из операндов всегда имеет регистровую адресацию. В большинстве команд процессора регистровая адресация одного из операндов может сочетаться с любым типом адресации второго операнда, за исключением относительной адресации. Как правило, приемником результата операции всегда является регистр, кроме команд сохранения (типа STI, STF), где приемником служит память с косвенной или прямой адресацией. Команды безусловных переходов используют относительную адресацию с 24-разрядным смещением, а команды условных переходов - относительную с 16-разрядным смещением или регистровую адресацию

Источник: https://otherreferats.allbest.ru/download/1150494/