Ділення цілих чисел на процесорах ADSP

Сімейство процесорів ADSP-2100 та їх характеристика. Аналіз ресурсів та структурна схема обчислювального модуля ALU. Призначення регістра ASTAT. Блок-схема алгоритму та програма реалізації ділення цілих чисел на мові Асемблера поточного процесора ADSP.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 04.01.2014
Размер файла 463,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Контрольна робота

з дисципліни: «Технічне забезпечення інформаційних технологій проектування»

на тему: «Ділення цілих чисел на процесорах ADSP»

Зміст

Вступ

1. Аналіз ресурсів АЛУ

2. Реалізація програми

2.1 Блок-схема алгоритму

2.2 Реалізація схеми

2.3 Лістинг програми

Висновки

Вступ

ЛУ підтримує операцію ділення. Ця функція досягається за рахунок додавання ланцюга зсуву. Розподіл здійснюється за допомогою двох спеціальних примітивів розподілу, які використовуються для виконання невідновлюваного умовного алгоритму розподілу складанням - відніманням. Розподіл може бути або знаковим, або беззнаковим; однак, ділене і дільник повинні бути при цьому в одному і тому ж вигляді. Ділення з одинарною точністю з 32- розрядним діленим ( чисельником ) і 16-розрядних дільником (знаменником ), в результаті якого виходить 16 - розрядне приватне, виконується протягом 16 циклів. При цьому також можуть бути підраховані приватні з більш високою і низькою точністю. Дільник може зберігатися в регістрах АГВ, АХ1 або будь-якому з регістрів R. Старші розряди знакового діленого можуть починатися або в AY1, або АР. Старші розряди беззнакового діленого повинні знаходитися в АР. Молодші розряди діленого, незалежно від його виду, повинні знаходитися в регістрі AYO. В кінці операції ділення приватне перебуватиме в AYO. Перший з двох примітивів розподілу "поділ - знак " ( DIVS ) виконується на початку розподілу при діленні знакових чисел.

У цій команді в ході виконання операції логічного АБО над знаковими бітами діленого і дільника обчислюється знаковий біт приватного. Вміст регістра AYO зсувається на одну позицію, таким чином, що отриманий знаковий біт стає наймолодшим бітом. Обчислений знаковий біт також завантажується в біт AQ арифметичного регістра стану. Найстарший біт регістра AYO зсувається в положення самого молодшого біта регістра АР, а старші 15 біт АР завантажуються молодшими 15 бітами R з АЛУ, що не вступаючи на вхід Y йдуть прямо на вихід R. У результаті досягається лівий зсув пари регістрів АР - AYO і переміщення знакового біта приватного в положення самого молодшого біта.Прі діленні беззнакових чисел операція DIVS не використовується. У даному випадку біт AQ в арифметичному регістрі стану ( ASTAT ) повинен бути встановлений в 0 шляхом скидання, здійснюваного вручну. Біт AQ вказує, що для подальших операцій передбачається позитивне приватне.

Другим примітивом поділу є команда "поділ -приватне " ( DIVQ ), яка генерує один біт приватного і виконується повторно для обчислення інших біт приватного. Для беззнакового розподілу з одинарної точністю команда DIVQ виконується 16 разів для отримання 16 - розрядного приватного.

Для знакового розподілу з одинарної точністю ця команда виконується 15 раз, після того як знаковий біт був обчислений в ході операції DIVS. Команда DIVQ зрушує вміст регістра AYO на один біт вліво, таким чином що новий біт приватного може бути поміщений в положення самого молодшого біта. Стан біта AQ, згенерованого в ході виконання попередньої операції, визначає операцію АЛУ по обчисленню поточного залишку. Якщо AQ = 1, АЛУ додає дільник до поточного залишку в АР. Якщо AQ = 0, АЛУ віднімає дільник з поточного залишку в АР. Результат з виходу R завантажується в АР, так само як і в попередній операції DIVS. Біт AQ обчислюється за допомогою операції виключає АБО над найстаршим бітом діленого і самим старшим бітом вихідного значення АЛУ, а біт приватного виходить в результаті інвертування цього значення. Біт приватного завантажується в самий молодший біт регістра AYO, який також зсувається вліво на один біт.

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

процесор алгоритм ділення число

Аналіз обчислювальних ресурсів

Сімейство процесорів ADSP-2100 являє собою сукупність програмованих мікропроцесорів із загальною структурою, оптимізовану для обробки аналогового сигналу в цифровій формі, а також для інших прикладних цілей. Різні мікропроцесори відрізняються один від одного переважно типом периферійних пристроїв, які доповнюють основну структуру. У різних членів родини можуть є пам'ять, таймер, послідовний і паралельний порти. Крім того, процесори ADSP-21msp58/59 включають аналоговий інтерфейс для перетворення сигналу звукової частоти.

Функціональні модулі

Computational Units (обчислювальний модуль) - кожен процесор сімейства ADSP-2100 містить три повнофункціональних незалежних обчислювальних модуля: аріфметічіско-логічний, multiplier/accumulator (MAC) - накопичувач, barrel shifter - зсувне расшірітель.

Все модулі оперують з 16-розрядними словами, а також забезпечують апаратну підтримку мультіточності.

Data Address Generators & Program Sequencer (генератори адрес даних і програма sequencer) - два окремих генератора адрес забезпечують адреси для вбудованої і зовнішньої пам'яті.

Memory (пам'ять) - в сімействі ADSP-2100 застосовується архітектура пам'яті, в якій дані зберігаються в секції даних, а в секції програм зберігаються як дані так і команди.

Serial Ports (послідовні порти) - забезпечують послідовний інтерфейс зв'язку з апаратними засобами, призначеними для стиснення, зберігання і обробки даних.

Timer - 8-розрядний програмований таймер/лічильник забезпечує періодичну генерацію переривань.

Системний інтерфейс і інтерфейс пам'яті

У кожному процесорі сімейства ADSP-2100 чотири внутрішні шини з'єднують внутрішню пам'ять з іншими функціональними модулями:

- Шина адреси;

- Шина даних;

- Шина пам'яті програм;

- Шина пам'яті даних.

Ефективність сигнального процесора

Сигнальний процесор повинен бути не тільки дуже швидкодіючим, але задовольняти деяким вимогам в наступних областях:

* Швидка і гнучка арифметика - архітектура процесорів ADSP-2100 дозволяє в одному проводити такі операції, як множення, множення з накопиченням, довільне зміщення, а також ряд стандартних арифметичних і логічних операцій в одному циклі процесора.

* Розширений динамічний діапазон - 40-розрядний акумулятор має вісім резервних біт захисту від переповнення при послідовному підсумовуванні, які гарантують, що втрати даних бути не може.

* Вибірка двох операндів за один цикл - при розширеному підсумовуванні на кожному циклі процесора необхідно два операнда. Усі члени родини ADSP-2100 здатні підтримувати обробку даних з двома операндами, збережені чи дані в пам'яті чи ні.

* Апаратні циклічні буфери - великий клас алгоритмів обробки цифро-аналогових сигналів, включаючи цифрові фільтри вимагають наявності циклічних буферів. Архітектура сімейства ADSP-2100 має апаратні засоби для обробки покажчика адреси wraparound, що спрощує реалізацію кругових буферів.

* Перехід з нуля - повторюються алгоритми найбільш логічно висловлювати через цикли. Програма Sequenser ADSP-2100 підтримує роботу з циклічним кодом з нулем на верху, в поєднанні із структурою clearest це підвищує ефективність системи. Також немає перешкоди для роботи з умовними переходами.

Основна архітектура

Обчислювальні модулі

Кожен процесор сімейства ADSP-2100 містить три незалежних обчислювальних модуля:

- Арифметико-логічний (ALU);

- Множення з накопиченням (MAC);

- Розширник (shiffter).

Генератори адрес даних і програма sequencer

Два спеціалізованих генератора адрес даних (DAGs) і потужна програма sequencer гарантують ефективне використання обчислювальних модулів.

Шини

Процесори сімейства мають п'ять внутрішніх шин. Шини адреси програми (PMA) та адреси даних (DMA) пов'язані з адресами пам'яті даних і програми. Шина даних програми (PMD) і шина даних (DMD) використовуються для передачі інформації пов'язаної з областями пам'яті. Шини мультиплексованих в одну зовнішню шину адреси і одну зовнішню шину даних. R-шина призначена для передачі проміжних результатів безпосередньо між обчислювальними модулями.

Внутрішні периферійних пристроїв

Послідовні порти

Більшість процесорів сімейства ADSP-2100 мають по два послідовних двонаправлених порту. Порти - синхронні і використовують кадрові сигнали для контролю за прийомом-передачею даних.

Таймер

Регістр рахунку (16-розрядів) визначає час генерації переривань, переривання виробляється коли значення регістра дорівнює нулю.

Головний інтерфейсний порт (HIP)

Головний інтерфейсний порт - паралельний порт вводу-виводу здійснює пряме з'єднання з процесором. Через нього здійснюється обмін між ADSP-2100 і пам'яттю головною ЕОМ.

1. Аналіз ресурсів АЛУ

Рис.1. Блок-схема ALU

На малюнку 1 показана структурна схема обчислювального модуля ALU.

ALU - це 16-розрядне пристрій з двома 16-розрядними портами введення даних X і Y, і одним портом виведення - R. ALU генерує шість сигналів стану: нуль (AZ), негатив (AN), перенесення (AC), переповнення (AV), знак (AS) і quotient (AQ). У кінці кожного циклу ці сигнали зберігаються в регістрі стану процесора (ASTAT).

Порт вводу X може приймати дані з двох джерел: з регістра АX і з шини результатів P. P-шина з'єднує вихідні регістри усіх обчислювальних модулів. Регістр AX призначений тільки для порту X і складається з двох частин AX0 і AX1. Ці регістри підключених до ДПД-шині. Система команд дозволяє читання регістра AX і за допомогою ДПП-шини, але прямого з'єднання з нею ні, ця операція використовує модуль ДПД - ДПП обміну. Висновки регістрів AX0 і AX1 реалізовані таким чином, щоб один забезпечував введення в ALU, а інший в цей час керував ДПД -шиною.

Порт введення Y також бере дані з двох джерел: з регістра AY і регістра зворотного зв'язку ALU - AF. Регістр AY прив'язаний до порту Y і складається з двох регістрів AY0 і AY1. Ці регістри доступні для читання і запису з ДПД-шини та перезаписуємо з ДПП-шини. Система команд дозволяє читати регістри AY0 і AY1 за допомогою ДПП-шини. Висновки регістрів AY0 і AY1 реалізовані аналогічно регістрів AX0 і AX1.

Вихід ALU підключений до вихідного регістру результату AR і через регістр зворотного зв'язку AF на вхід. AF - внутрішній регістр ALU, який дозволяє результату обчислення використовуватися в якості наступного операнда. Регістр AR має вихід на ДПД -і Р-шини. У системі команд передбачена можливість читання регістра AR допомогою ДПП-шини аналогічно двох попередніх випадках.

Будь-який з регістрів ALU доступний для запису та читання протягом циклу процесора (для читання на початку циклу, для читання - в кінці). Таким чином, нове значення, записане в кінці одного циклу, може бути прочитати лише на початку наступного. Це дозволяє вхідним регістрів записати в ALU опренд на початку циклу і вважати наступний наприкінці того ж циклу. Це так само дозволяє зберегти вміст регістра результату в пам'яті і прооперувати з наступним результатом в одному циклі.

ALU має подвійні банки регістрів AX, AY, AF і AR (на Рис.2.1 це показано тінями). Але в один момент часу доступний тільки один банк. Додатковий банк може бути активізований для надзвичайно швидкого контекстного перемикання. У цьому випадку нове завдання, подібно підпрограмі обробці переривання, може виконуватись без збереження поточних даних в пам'яті.

Вибір головного або альтернативного банку регістрів визначається бітом 0 регістра режима процесора MSTAT. Якщо цей біт - 0, то обраний головний банк, якщо - 1, то додатковий.

Регістри введення виведення ALU

Регістри введення ALU перераховані нижче.

Регістри для порту X: AX0, AX1, AR, MR0, MR1, MR2, SR0, SR1.

Регістри для порту Y: AY0, AY1, AF.

Регістри для порту Р: AR, AF.

Регістри MR0, MR1, MR2 є регістрами результатів модуля MAC, а SR0, SR1 - модуля Shifte

Регістр AR має режим роботи - насичення, в якому він встановлюється в мінімальне від'ємне значення або максимальне позитивне, якщо операція закінчується переповненням. Ця функція регістра AR стає можливою при установці 3 регістра MSTAT.

Регістр стану ALU

Призначення бітів регістра ASTAT описано нижче:

* AZ - ZERO - логічне додавання всіх бітів регістра результатів ALU. Встановлюється в 1, якщо результат операції дорівнює нулю.

* AN - NEGATIV - знаковий розряд результату ALU. Одиниця, якщо результат негативний.

* AV - OVERFLOW - встановлюється в одиницю, якщо відбувається переповнення ALU.

* AC - CARRY - біт переносу.

* AS - SIGN - знаковий розряд вхідного X-порту ALU. Потрібен тільки для команди ABS.

* AQ - QUOTIENT - біт приватного. Генерується тільки командами DIVS і DIVQ.

2. Реалізація програми

2.1 Блок-схема алгоритму

2.2 Реалізація схеми

2.3 Лістинг програми

MODULE/RAM/ABS=0x100 kurs_work;

ax0 = 0;

dm(0x0094) = ax0;

ax0 = 20;

dm(0x0098) = ax0;{a = ax0}

ax0 = 2;

dm(0x0099) = ax0;{b = ax0}

ax0 = 0;

dm(0x0097) = ax0;{c = ax0}

beg:ay0 = dm(0x0097);

ar = ay0 + 1;

dm(0x0097) = ar;

mx0 = dm(0x0099);

my0 = dm(0x0097);

mr = mx0 * my0;{b * c}

dm(0x0096) = mr;{b * c}

ay0 = dm(0x0096);{b * c}

ax0 = dm(0x0098);{a}

ar = ax0 - ay0;{a - b * c}

if eq jump ravn;{if ar = 0 (a = b) write 1}

dm(0x0095) = ar;{a - b * c}

ax0 = am(0x0095);{a - b * c}

ar = ax0 - ay0;{(a - b * c) - b * c}

if eq jump par;{if ar = 0}

if gt jump beg;{if ar > 0 return to beg}

ax0 = dm(0x0097);

ar = ax0 - 1;

dm(0x0097) = ar;

ax0 = 1;

dm(0x0094) = ax0;

par:mx0 = dm(0x0097);

my0 = 2;

mr = mx0 * my0;{mr = c * 2}

dm(0x0097) = mr;

ax0 = dm(0x0097);

ay0 = dm(0x0094);

ar = ax0 + ay0;{c * 2 + 1(0)}

dm(0x0097) = ar;

ravn: ax0 = dm(0x0097);

dm(0x0300) = ax0;

.ENDMOD;

Висновок

У даній роботі була створена блок-схема алгоритму ділення цілих чисел. Згідно з алгоритмом була побудована топологія структури дільника, використовуючи стандартні елементи процесора ADSP, типу АЛУ (ALU), множника-накопичувача (MAC) і пристрою зсуву (SHIFT). Після чого була створена програма реалізації ділення на мові Асемблера поточного процесора ADSP.

Використання при основному відніманні двох АЛУ (на структурі це АЛУ1 і АЛУ2) замість однієї дозволяє зменшити час обчислення результату як мінімум в півтора рази. Ефективність даного типу регісту дільника (з 2-ма АЛУ) відносно звичайного (з 1-м АЛУ) збільшується пропорційно до збільшення різниці між діленим і дільником.

Таким чином використання даної структури регістру дільника прискорює процес ділення чисел, що особливо помітно при великому значенні діленого.

Список літератури

1. Методичні вказівки до розрахунково-графічної роботи з дисципліни» Обчислювальні та мікропроцесорні засоби в електронній апаратурі» для студентів фахів 7.092.001, 7.091.003 / Укл. Ю.Д.Іванов-Одеса: ОНПУ, 2003.-24 с.

2. МИКРОПРОЦЕССОРЫ И МПС. Часть 1. Архитектура микропроцессора К580ВМ80. Организация МП - систем / Укл. В.П. Мокрецов-Екатеринбург, 2008.

3. В.Н.Булатов. УЧЕБНОЕ ПОСОБИЕ. Архитектура микропроцессорной системы. Состав машинних команд и основы программирования Микропроцессорной системы на ассемблере. Оренбург, 2009.

4. Смирнов В.А. Схемотехника микропроцессорных систем: Текст лекций. -- Челябинск: Изд-воЮУрГУ, 2010. -- 110 с.

5. Вернер В.Д. Микропроцессоры: Кн.2. Средства сопряджения. Контрлирующие и нформационно-управляющие системі. - М.:высшая школа, 2008.-383 с.

6. Балашов Е.П. Микропроцессоры и микропроцессорные системы/ под. ред.. В.Б. Смолова.-М.:радио и свіязь, 1981.-328с.

Размещено на Allbest.ru


Подобные документы

  • Спосіб реалізації алгоритму перетворення Фур`є для сигнального процесора ADSP-2181 для 20-розрядних вхідних даних з часовим прорідженням. Механізми обчислення швидкого перетворення Фур`є за заданою основою. Алгоритм перетворення на заданому процесорі.

    курсовая работа [1,6 M], добавлен 03.01.2014

  • Процес послідовної передачі даних, режим її здійснення. Типова схема інтерфейсу. Структурна схема модуля шифрування. Розробка генератора псевдовипадкових чисел на основі регістра зсуву з оберненими зв’язками. Симуляція роботи розробленої моделі пристрою.

    курсовая работа [594,1 K], добавлен 09.04.2013

  • Розробка машинного алгоритму та операційного автомату для виконання операції ділення в двійково-десятковій системі числення з відновленням остачі у оберненому коді. Перевірка роботи керуючого автомату з програмованою логікою та натуральною адресацією.

    курсовая работа [178,7 K], добавлен 10.05.2011

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

    контрольная работа [61,9 K], добавлен 08.10.2010

  • Операція алгебраїчного додавання, множення, ділення. Алгоритм ділення модулів чисел. Поняття граф-схеми алгоритму та правила її складання. Основні поняття теорії цифрових автоматів. Синтез керуючого автомата. Контроль виконання арифметичних операцій.

    реферат [55,4 K], добавлен 24.03.2009

  • Теоретичні відомості про язик С++. Розробка програми, що виконує основні арифметичні дії над простими та складними числами на язику С++. Опис алгоритму програми та її код. Інструкція по користуванню. Обгрунтовування вибору та складу технічних засобів.

    курсовая работа [852,8 K], добавлен 30.11.2011

  • Графічне зображення методу половинного ділення. Вибір методу інструментальних засобів вирішення задач. Розробка логічної частини програми для розв’язання нелінійного рівняння методами половинного ділення та січних. Особливість кодування на мові Паскаль.

    курсовая работа [135,5 K], добавлен 30.11.2009

  • Поняття мови програмування С++, її сутність та особливості, призначення та використання. Структура програми, її основні елементи та загальні правила роботи. Охорона праці при роботі з обчислювальною технікою. Апаратні вимоги для виконання програми.

    курсовая работа [126,2 K], добавлен 29.03.2009

  • Проектування процесора для виконання (з використанням доповняльного коду без відновлення розрядів остачі) операції ділення в двійково-десятковій системі числення. Розробка алгоритму виконання операції та операційного автомату. Розробка карти прошивки.

    курсовая работа [263,3 K], добавлен 14.03.2013

  • Використання математичного сопроцесора або його емулятора при програмуванні на мові асемблера з використанням дробових чисел. Створення програми на мові ASM-86, яка реалізує функції [x], {x}, |X|. Алгоритм перетворення цілого числа в дійсне та навпаки.

    курсовая работа [12,4 K], добавлен 08.08.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.