ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Опис процесорів сімейства ADSP
         

     

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

    Computational Units (обчислювальний модуль) - кожен процесор сімейства ADSP-2100 містить три повнофункціональних незалежних обчислювальних модуля: arithmetic/logic unit (ALU) - аріфметічіско-логічний, multiplier/accumulator (MAC) - накопичувач, barrel shifter - зсувне расшірітель.Все модулі оперують з 16-розрядними словами, а також забезпечують апаратну підтримку мультіточності.
    Data Address Generators & Program Sequencer (генератори адрес даних і програма sequencer) - два окремих генератора адрес забезпечують адреси для вбудованої і зовнішньої пам'яті. Подвійні генератори адрес даних дозволяють процесору генерувати адреси для двох вибірок операнда одночасно, що збільшує продуктивність.
    Memory (пам'ять) - в сімействі ADSP-2100 застосовується архітектура пам'яті, в якій дані зберігаються в секції даних, а в секції програм зберігаються як дані так і команди. Усі процесори сімейства мають оперативну пам'ять складається і цих двох сегментів. Швидкодія внутрішньої пам'яті дозволяє процесору вибирати два операнда (один з області даних, іншої з області програм) протягом одного циклу.
    Serial Ports (послідовні порти) - забезпечують послідовний інтерфейс зв'язку з апаратними засобами, призначеними для стиснення, зберігання і обробки даних. Інтерфейс сумісний з великою кількістю відомих пристроїв. Кожен порт може використовувати як внутрішній таймер, так і зовнішній. Послідовний порт 0 має багатоканальні можливості.
    Timer - 8-розрядний програмований таймер/лічильник забезпечує періодичну генерацію переривань.
    Host Interface Port (головний зв'язковий порт) - забезпечує пряме з'єднання з головним процесором ЕОМ. Наприклад Motorola 68000, Intel 8051 або інший процесор сімейства ADSP-2100 можуть бути легко з'єднані з головним інтерфейсом.
    DMA Ports (порти DMA) - в ADSP-2181 внутрішній (IDMA) і байтовий (BDMA) DMA порти забезпечують ефективну передачу даних з внутрішньої пам'яті і в неї. IDMA порт має мультиплексний адреса і 16-розрядну шину даних. IDMA порт повністю асинхронний дані в нього можуть записуватися, у той час коли ADSP-2181 повністю зайнятий.
    Analog Interface (аналоговий інтерфейс) - процесори ADSP-21msp58/59 мають вбудовану схему для цифрової обробки аналогового сигналу. Ця схема містить АЦП (ADC) і ЦАП (DAC), аналогові і цифрові фільтри і паралельний інтерфейс зв'язку з ядром процесора.
    Архітектура сімейства ADSP-2100 пристосована до виконання завдань за допомогою цифрового сигнального процесора і побудована таким чином, що пристрої за один такт можуть виконувати наступні дії:
    * Генерувати наступну адресу програми;
    * Вибирати таку команду;
    * Виконувати один або два кроки програми;
    * Модифіковані один або два покажчика адреси даних;
    * Виконувати обчислення.
    У цьому ж такті процесори, які мають релевантні модулі можуть:
    * Приймати і/або передавати дані через послідовний порт;
    * Приймати і/або передавати дані через головний порт інтерфейсу;
    * Приймати і/або передавати дані через DMA порти;
    * Приймати і/або передавати дані через аналоговий інтерфейс.
    1.2. Системний інтерфейс і інтерфейс пам'яті
    У кожному процесорі сімейства ADSP-2100 чотири внутрішні шини з'єднують внутрішню пам'ять з іншими функціональними модулями:
    - Шина адреси;
    - Шина даних;
    - Шина пам'яті програм;
    - Шина пам'яті даних.
    Зовнішні пристрої можуть одержувати контроль над шинами за допомогою сигналів надання (BR, BG). Процесори ADSP-2100 можуть працювати в той час коли шини надані іншого пристрою, поки не потрібно операції із зовнішньою пам'яттю.
    Схема початкового завантаження дає можливість автоматичного завантаження внутрішньої пам'яті після того, як її вміст було стерто. Це можна здійснювати за допомогою інтерфейсу пам'яті з EPROM, з головного комп'ютера, за допомогою головного порту інтерфейсу, а так само через BDMA порт процесора 2181. Програми можуть завантажуватися без застосування будь-яких додаткових апаратних засобів.
    1.3. Система команд
    Процесори сімейства ADSP-2100 використовують єдину систему команд для сумісності з пристроями з вищою інтеграцією. Мікропроцесори ADSP-2171, ADSP-2181 і ADSP-21msp58/59 мають ряд додаткових команд. Система команд дозволяє виконувати багатофункціональні команди за один такт процесора, з іншого боку кожна команда може бути виконана окремо у своєму такті. Асемблер має алгебраїчний синтаксис, для підвищення удобочітаемості легкості кодування.
    1.4. Ефективність сигнального процесора
    Сигнальний процесор повинен бути не тільки дуже швидкодіючим, але задовольняти деяким вимогам в наступних областях:
    * Швидка і гнучка арифметика - архітектура процесорів ADSP-2100 дозволяє в одному проводити такі операції, як множення, множення з накопиченням, довільне зміщення, а також ряд стандартних арифметичних і логічних операцій в одному циклі процесора.
    * Розширений динамічний діапазон - 40-розрядний акумулятор має вісім резервних біт захисту від переповнення при послідовному підсумовуванні, які гарантують, що втрати даних бути не може.
    * Вибірка двох операндів за один цикл - при розширеному підсумовуванні на кожному циклі процесора необхідно два операнда. Усі члени родини ADSP-2100 здатні підтримувати обробку даних з двома операндами, збережені чи дані в пам'яті чи ні.
    * Апаратні циклічні буфери - великий клас алгоритмів обробки цифро-аналогових сигналів, включаючи цифрові фільтри вимагають наявності циклічних буферів. Архітектура сімейства ADSP-2100 має апаратні засоби для обробки покажчика адреси wraparound, що спрощує реалізацію кругових буферів.
    * Перехід з нуля - повторюються алгоритми найбільш логічно висловлювати через цикли. Програма Sequenser ADSP-2100 підтримує роботу з циклічним кодом з нулем на верху, в поєднанні із структурою clearest це підвищує ефективність системи. Також немає перешкоди для роботи з умовними переходами.

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

    У цьому розділі описується основна архітектура процесорів сімейства ADSP-2100, схема якої наведена на рис. 2.1.
    2.1. Обчислювальні модулі
    Як вже говорилося вище кожен процесор сімейства ADSP-2100 містить три незалежних обчислювальних модуля:
    - Арифметико-логічний (ALU);
    - Множення з накопиченням (MAC);
    - Розширник (shiffter).
    Ці пристрої працюють з 16-розрядними даними і забезпечують апаратну підтримку мультіточності.
    ALU виконує ряд стандартних арифметичних і логічних команд на додаток до примітиву поділу. MAC виконує одноцікловие операції множення, множення/додавання, множення/віднімання. Shiffter здійснює логічні і арифметичні зрушення, нормалізацію, денормализация і операцію отримання порядку, атак ж управління форматом даних, дозволяючи роботу з плавоющей точкою. Обчислювальні модулі розміщуються послідовно один за одним, таким чином щоб вихід одного міг стати входом іншого в наступному циклі. Результати роботи модулів збираються на 16-розрядну R-шину.
    Усі три модулі містять вхідні і вихідні регістри, які доступні черех 16-розрядну DMD-шину. Команда, що виконуються в модулях, беруть у якості операндів дані знаходяться в регістрах введення і після виконання записують результат в регістри виводу. Регістри є як би проміжним сховищем між пам'яттю та обчислювальної схемою. R-шина дозволяє результату одного обчислення стати операндом до іншої операції. Це дозволяє заощадити час обходячись без зайвих пересилань модуль-пам'ять.

    2.2. Генератори адрес даних і програма sequencer
    Два спеціалізованих генератора адрес даних (DAGs) і потужна програма sequencer гарантують ефективне використання обчислювальних модулів. DAGs забезпечують адреси пам'яті, коли необхідно помістити дані з пам'яті в регістри введення обчислювальних модулів, або зберегти в результат з выхоных регістрів. Кожен DAG відповідає за чотири покажчика адреси. Якщо покажчик використовується для непрямої адресації то змінити значення деякого регістра. З двома генераторами процесор може видавати дві адреси одночасно для вибірки з пам'яті двох операндів.
    Для автоматичної адресації модуля кругових буферів значення довжини операнда може бути пов'язано з кожним покажчиком. (Круговая буферна особливість також використовується послідовними портами для автоматичної передачі даних).
    DAG1 забезпечує адреси тільки для даних, DAG2 - для даних і програм. Коли в регістрі стану (MSTAT) встановлений відповідний біт режиму, адреса виведення DAG1 перш ніж потрапити на шину адреси інвертується. Ця особливість полегшує роботу в двійковій системі.
    Програма Sequenсer забезпечує послідовність команд і адресацію пам'яті програми. Sequencer управляється регістром команд, який вказує на команду, яка в даний момент виконується. Вибрані команди записуються в регістр команд за один такт процесора і виконуються протягом наступного. Щоб зменшити кількість циклів, sequencer підтримує роботу з умовними переходами.
    2.3. Шини
    Процесори сімейства мають п'ять внутрішніх шин. Шини адреси програми (PMA) та адреси даних (DMA) пов'язані з адресами пам'яті даних і програми. Шина даних програми (PMD) і шина даних (DMD) використовуються для передачі інформації пов'язаної з областями пам'яті. Шини мультиплексованих в одну зовнішню шину адреси і одну зовнішню шину даних. R-шина призначена для передачі проміжних результатів безпосередньо між обчислювальними модулями.
    Адресна шина PMA шириною 14 біт забезпечує достум до 16Кбайтам змішаної системи команд і даних. 24-розрядна шина PMD призначена для роботи з 24-бітними командами.
    Адресна шина DMA шириною 14 біт, забезпечує прямий доступ до 16Кбайтам області даних. 16-розрядна шина DMD призначена для внутрішніх пересилань між будь-якими регістрами процесора і регістрів з пам'яттю в одиночному циклі. Адреса пам'яті даних виходить з двох джерел: абсолютне значення, визначене в системі команд (пряма адресація) або виведення даних адресує генератор (непряма адресація). Скористатися даними з області команд можна лише за допомогою непрямої адресації.
    Шина даних пам'яті програми (PMD) призначена для передачі даних в обчислювальні модулі та зчитування результату обчислень через PMD-DMD модуль обміну. Цей модуль дозволяє передавати дані від однієї шини до іншої. Він має апаратні засоби для переходу від 8-розрядної шини до іншої.
      
    3. Внутрішні периферійних пристроїв
     
    Цей розділ описує додаткові функціональні модулі, які включені в різні процесори ADSP-2100 сімейства.
    3.1. Послідовні порти
     
    Большенство процесорів сімейства ADSP-2100 мають по два послідовних двонаправлених порту. Порти - синхронні і використовують кадрові сигнали для контролю за прийомом-передачею даних. Кожен порт має внутрішній генератор частоти, але в той же час може використовувати зовнішній генератор. Сигнали синхронізації можуть вироблятися як самим портом, так і зовнішнім пристроєм. Довжина кадру обміну може мінятися від трьох до шести біт. Послідовний порт SPRT0 має багатоканальні можливості і пзволяет обмін даними довільної довжини від 24 до 32 байт. Другий порт SPORT1 може бути налаштовано за допомогою зовнішніх переривань IRQ0 і IRQ1.
    3.2. Таймер
    Регістр рахунку (16-розрядів) визначає час генерації переривань, переривання виробляється коли значення регістра дорівнює нулю.
    3.3. Головний інтерфейсний порт (HIP)
    Головний інтерфейсний порт - паралельний порт вводу-виводу здійснює пряме з'єднання з процесором. Через нього здійснюється обмін між ADSP-2100 і пам'яттю головною ЕОМ. HIP складається з регістрів, через які ADSP-2100 і головний процесор обмінюються інформацією про стан і даними. HIP може бути налаштований таким чином:
    - 8-розрядна чи 16-розрядна шина;
    - Мультиплексна шина даних/шина адреси або окремо шина даних і шина адреси;
    - Читання стробірующіх сигналів READ/WRITE.
    3.4. DMA порти (ADSP-2181)
    ADSP-2181 два DMA порту внутрішній (IDMA) порт і байтовий (BDMA). IDMA порт забезпечує ефективний зв'язок між головною системою і сигнальним процесором. Він використовується для зв'язку з внутрішньою пам'яттю програми та пам'яттю даних за один такт процесора. IDMA порт має 16-розрядний мультиплексний адресу та шину даних. IDMA порт повністю ассінхронний і може працювати навіть коли процесор повністю зайнятий.
    Байт пам'яті контролера DMA дозволяє завантажувати і зберігати команди програм і дані, що знаходяться в пам'яті. BDMA схема здатна звертатися до комірки пам'яті, у той час як процесор працює в звичайному режимі, використовуючи тільки один такт процесора для передачі 8 -, 16 - або 24-розрядних даних.
    3.5. Аналоговий інтерфейс
    Вхідний аналоговий інтерфейс складається з вхідних підсилювачів і 16-розрядного аналогоціфрового перетворювача (ADC). Аналогічно на виході знаходиться Цифроаналоговий перетворювач і вихідний диференційний підсилювач.

    4. ADSP-2100 - засоби розробки

    Сімейство ADSP-2100 супроводжується повним набором програмного забезпечення та аппартних коштів для розробки. Система засобів розробки для ADSP-2100 включає утиліти програмного забезпечення для розробки програми і EZ-комплект для налагодження апаратних засобів.
    Програмне забезпечення включає:
    * System Builder (системний укладач програми) - визначає структуру апаратної системи. Він описує кількість зовнішньої пам'яті і доступні порти введення/виводу.
    * Assembler (асемблер) - транслює вихідний код і модулі даних і забезпечує синтаксис високого рівня. На додаток до повної діагностики системи Асемблер забезпечує макро обробку: включення файлів і модульну обробку коду.
    * Linker (компановщік) - зв'язує окремі модулі програми, отримуючи пов'язаний код, і направляє його до апаратних засобів, описаним за допомогою System Builder.
    * Simulator (тренажер) - виконує інтерактивне моделювання апаратної конфігурації описаної System Builder. Він відзначає заборонені команди і підтримує повну символічну трансляцію і дізассемблірованіе.
    * PROM Splitter - цей модуль у вихідні даними компановщіка генерує код сумісний з форматом пам'яті PROM.
    * C compiler (С транслятор) - читає исходники написані на С у форматі ANSI і код на мові сімейства ADSP-2100, готовий до ассемблірованію.

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

    1. Короткий опис
    1.1. Двійкові рядків
    Двійкові рядки - найпростіше представлення чисел в процесорах сімейства ADSP-2100. Цей формат, наприклад, використовують елементарні логічні функції: NOT, OR, AND, XOR і т.д. Обчислювальний модуль ALU обробляє ці числа у вигляді двійкових послідовностей не залучаючи можливості роботи з плаваючою точкою і знаковим розрядом.
    1.2. Беззнакові числа
    Під двійковими числами без знака розуміються позитивні числа. Діапазон їх подання в процесорі в два рази більше ніж у чисел зі знаком. Числа великої точності обробляються як беззнакові.
    1.3. Числа зі знаком: подвійне доповнення
    Расматрівая арифметику сімейства ADSP-2100 знакові числа можна віднести до чисел з подвійним доповненням. Дольшенства операцій процесора підтримують роботу з подвійним доповненням. Процесори сімейства ADSP-2100 не підтримують роботу з залишками і BCD-форматом.
    1.4. Дробове подання: 1.15
    Арифметики ADSP-2100 пристосована для роботи з числами в дробному двочном форматі, званому 1.15. У цьому форматі є один знаковий розряд (MSB) і п'ятнадцять дрібних бітів.
    Далі представлені вагові значення бітів у форматі 1.15:

    -20 2 -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 2 -8 2 -9 2 -10 2 -11 2 -12 2 -13 2 -14 2 -15

    Числа у форматі 1.15 Десятковий еквівалент 0x0001
    0x7FFF
    0xFFFF
    0x8000 0.000031
    0.999969
    -0.000031
    -1.000000
    1.5. Арифметика ALU
    Всі команди ALU обробляють операнди, як д?? оічние 16-розрядні послідовності. Бити стану: AV-переповнення, AN - знак.
    Логіка біта переповнення заснована на арифметиці подвійного доповнення. Наприклад при складанні двох позитивних чисел виходить позитивний результат, але може призвести до переповнення. При складання двох чисел з різними знаками результат може бути як позитивним так і негативним, але переповнення в цьому випадку неможливо.
    Логіка біта перенесення заснована на арифметиці чисел без знака. Він встановлюється якщо перенесення згенерований 16-ым бітом (MSB).
    1.6. Арифметика MAC
    Операції модулі MAC виробляються над числами, представленими у вигляді двоіних послідовностей і результет видається у тому ж вигляді.
    Процесори сімейства ADSP-2100 підтримують два режиму коригування формату: дрібний режим - для дрібних операндів (формат 1.15) і цілочисельний режим для цілих чисел формату 16.0.
    Коли процесор примножує два операнда у форматі 1.15 в результаті виходить число 2.30 (дві знакові і 30 дрібних розряду). У дробному режимі МАС автоматично зрушує результат на один біт вліво перед пересиланням його в регістр результату (MR). Цим зрушенням результат приводиться до виду 1.31, який може бути округлед до формату 1.15.
    У цілочисельне режимі зсуву вліво не відбувається. Напрмер при збільшенні операндів 16.0 результат представляється у вигляді 32.0. Зрушення вліво в цьому випадку не потрібний, тому що він змінить числове представлення результату.
    1.7. Резюме

    2. Арифметико-логічний модуль ALU

    Модуль ALU надає набір стандартних арифметичних і логічних функцій. Арифметичні функції: додавання, віднімання, заперечення, інкремент, декремент і модуль.Оні доповнений двома примітивами поділу, за допомогою яких можлива реалізація циклу багаторазового поділу. Логіка: OR, AND, XOR (виключає АБО) і NOT.
    2.1. Блок-схема ALU
    На малюнку 2.1 показана структурна схема обчислювального модуля ALU.
    ALU - це 16-розрядне пристрій з двома 16-розрядними портами введення даних X і Y, і одним портом виведення - R. ALU генерує шість сигналів стану: нуль (AZ), негатив (AN), перенесення (AC), переповнення (AV), знак (AS) і quotient (AQ). У кінці кожного циклу ці сигнали зберігаються в регістрі стану процесора (ASTAT).
    Порт вводу X може приймати дані з двох джерел: з регістра АX і з шини результатів R. R-шина з'єднує вихідні регістри усіх обчислювальних модулів. Регістр AX призначений тільки для порту X і складається з двох частин AX0 і AX1. Ці регістри підключених до DMD-шині. Система команд дозволяє читання регістра AX і за допомогою PMD-шини, але прямого з'єднання з нею ні, ця операція використовує модуль DMD-PMD обміну. Висновки регістрів AX0 і AX1 реалізовані таким чином, щоб один забезпечував введення в ALU, а інший в цей час керував DMD-шиною.
    Порт введення Y також бере дані з двох джерел: з регістра AY і регістра зворотного зв'язку ALU - AF. Регістр AY прив'язаний до порту Y і складається з двох регістрів AY0 і AY1. Ці регістри даступни для читання і запису з DMD-шини та перезапісиваеми з PMD-шини. Система команд дозволяє читати регістри AY0 і AY1 за допомогою PMD-шини, але те саме з використанням DMD-PMD модуля. Висновки ругістров AY0 і AY1 реалізовані аналогічно регістрів AX0 і AX1.
    Вихід ALU підключений до вихідного регістру результату AR і через регістр зворотного зв'язку AF на вхід. AF - внутрішній регістр ALU, який дозволяє результату обчислення використовуватися в якості наступного операнда. Регістр AR має вихід на DMD-і R-шини. У системі команд передбачена можливість читання регістра AR допомогою PMD-шини аналогічно двох попередніх випадках.
    Будь-який з регістрів 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.
    Регістри для порту R: AR, AF.
    Регістри MR0, MR1, MR2 є регістрами результатів модуля MAC, а SR0, SR1 - модуля Shifter.
    2.4. Можливість мультіточності
    Операції мультіточності в ALU пов'язані з сигналом carry-in і бітом перенесення AC. Операція додавання з перенесенням призначена для складання старших частин мультіточних чисел, також як, віднімання з позика - для їх віднімання.
    2.5. Режим насичення ALU
    Регістр AR має режим роботи - насичення, в якому він встановлюється в мінімальне від'ємне значення або максимальне позитивне, якщо операція закінчується переповненням. Ця функція регістра AR стає можливою при установці 3 регістра MSTAT.

    Таблиця 2.2.
    Переповнення (AV) Carry (AC) Вміст AR0 0 Результат на виході ALU 01Результат на виході ALU 0 0111111111111111 (положіт.) 1 1 1000000000000000 (отріц.)
    2.6. Режим блокування переповнення
    Режим блокування переповнення дозволяється за встановлення біта 2 регістра MSTAT. У цьому режимі при переповнення біт AV встановлюється і при подальших операціях залишається в цьому стані, таким чином наступне переповнення уже не генерується. Біт стану AV можна очистити безпосередньо з DMD-шини.
    2.7. Розподіл
    ALU підтримує методи поділу. Розподіл здійснюється шляхом складання і циклічного зсуву за допомогою двох спеціальних примітивів. Ділити можна знакові і без знакові числа, проте дільник і ділене повинні бути одного типу.
    Звичайна точність поділу (32-розрядне ділене, 16-розрядний дільник, 16-розрядний залишок) реалізується за 16 циклів. Може бути отримана більша або менша точність залишку. Дільник може бути збережений в реєстрі AX0, AX1 або в будь-якому регістрі результатів R. Старший байт знакового дільника повинен знаходитися або в регістрі AY1, або в AF, без знакового - в AF. Молодший байт дільника будь-якого типу повинен знаходитися в AY0. Залишок після поділу буде записаний в регістр AY0.
    Перший з двох примітивів - це команда «поділ-знак» (DIVS), преназначена для ділення чисел зі знаком. Вона обчислює знаковий біт залишку виконуючи операцію що виключає АБО-для знакових розрядів дільника і ділимо. Регістр AY0 зсувається на одну позицію таким чином, щоб знаковий розряд перемістився в позицію LSB. Обчислений зниковий розряд зберігається в біт AQ регістра стану. Структура операції DIVS показана на малюнку 2.2.
    При діленні чисел без знака операція DIVS не застосовується. У цьому випадку біт AQ встановлюється в 0 вручну. Він показує, що залишок повинен бути позитивним.
    Другий примітив з розділу поділу - це команда DIVQ, яка виконується неодноразово і генерує по одному біту приватного. При простій точності ділення чисел без знака команда DIVQ виконується 16 разів, для такої ж точності ділення чисел зі знаком операція виконується 15 разів після обчислення знакового розряду за допомогою команди DIVS. DIVQ зрушує регістр AY0 вліво на один розряд так, щоб новий біт приватного опинився в позиції LSB. Стан біта AQ, яке генерується на попередній операції, визначає операцію ALU для обчислення часткового результату. Якщо AQ = 1, то ALU додає дільник до часткового результату в AF. Якщо AQ = 0, то ALU віднімає дільник з часткового результату в AF. Так само як і в операції DIVS ALU виводить результат у регістр AF. Операція DIVQ проілюстрована на ріс.2.3.
    Формат результату при будь-якому числовому поданні визначається форматом дільника і ділимо. Нехай NL число розрядів вліво і NR - це число розрядів праворуч від двійковій точки ділене; DL і DR-відповідно теж, тільки для дільника. Тоді приватне складається з NL-DL + 1 бітів ліворуч від двійковій точки і містить NR-DR-1 бітів справа.

    Іноді необхідно деякий зміна формату ділені й дільника. Наприклад, якщо обидва операнда знакові і дробові (ділене у форматі 1.31, а дільник - 1.15), то результат запишеться у форматі 1.15, т.ч. для правильного результату необхідно, щоб ділене було менше дільника.
    Щоб розділити два цілих числа (ділене у форматі 32.1, а дільник - 16), необхідно перед поділом привести ділене до формату 31.1, тобто зрушити його вліво на один розряд.

    Ділене: BBBBB.BBBBBBBBBBBBBBBBBBBBBBBBBBB
    NL NR
    Дільник: BB.BBBBBBBBBBBBBB
     DL DR
    Приватне: BBBB.BBBBBBBBBBBB
    (NL-DL +1) (NR-DR-1)
    Алгоритм переповнюється, якщо результат не представляється у форматі приватного, як обчислено вище і коли дільник дорівнює нулю або менше ділене.

    2.8. Регістр стану ALU
    Призначення бітів регістра ASTAT описано нижче:
    * AZ - ZERO - логічне додавання всіх бітів регістра результатів ALU. Встановлюється в 1, якщо результат операції дорівнює нулю.
    * AN - NEGATIV - знаковий розряд результату ALU. Одиниця, якщо результат негативний.
    * AV - OVERFLOW - встановлюється в одиницю, якщо відбувається переповнення ALU.
    * AC - CARRY - біт переносу.
    * AS - SIGN - знаковий розряд вхідного X-порту ALU. Потрібен тільки для команди ABS.
    * AQ - QUOTIENT - біт приватного. Генерується тільки командами DIVS і DIVQ.

    3. Обчислювальний модуль множення з накопиченням (MAC)

    Обчислювальний модуль МАС забезпечує швидке множення, множення з додаванням, множення з вирахуванням, функції насичення і очищення в нуль. Функція зворотного зв'язку дозволяє частини результату в одному циклі бути одним з співмножників в наступному.
    3.1. Опис блок-схеми МАС
    На малюнку 3.1. показана блок-схема обчислювального модуля множення з накопиченням.
    МАС має два вхідних 16-розрядних порту X і Y і 32-розрядний порт виводу результату P. 32-розрядний результат надходить в 40-розрядний блок складання/віднімання, який або додає, або віднімає поточний результат з регістра результату МАС (MR), або передає поточний результат безпосередньо в MR (регістр MR має 40 розрядів). Фактично регістр MR складається з трьох (MR0 і MR1 - 16-розрядні і MR2 - 8-рахрядний) регістрів.
     
    Блок складання/віднімання має більше 32 розрядів для того, щоб врахувати проміжні переповнення в ряді операції множення з накопиченням. Біт ознаки МV (переповнення) встановлюється в одиницю, якщо значення акумулятора перевищує 32 розряду, тобто у старшій частини регістра результату MR є дев'ять значущих бітів (без знаку).
    Регістри введення-виведення подібні до регістрів ALU.
    Порт Х може приймати дані з реєстру MX або з будь-якого іншого регістра на R-шині (результату). R-шина з'єднує вихідні регістри усіх обчислювальних модулів, для безпосереднього використання результатів обчислень в якості вхідних операндів. Регістр MX складається з двох: MX0 і MX1. Вони читаються і записуються з DMD-шини. Висновки регістрів MX0 і MX1 влаштовані таким чином, що один поставляє множник в блок множення, а інший керує DMD-шиною.
    Порт Y приймає дані з реєстру MY або регістра зворотного зв'язку MF. MY так само розбитий на два регістри (MY0 і MY1), доступ до яких здійснюється з DMD-шини і можливий запис в низ з PMD-шини. Система команд передбачає читання цих регістрів за допомогою PMD-шини, але прямого доступу для цієї операції немає, у цьому випадку використовується модуль DMD-PMD обміну. Висновки регістра MY влаштовані аналогічно MX.
    Результат множення надходить або в блок складання/віднімання, або в регістри MY або MF. Регістр зворотного зв'язку MF дозволяє 16-31-розрядному результату обчислення в попередньому циклі стає операндом множення на вході Y, в наступному. 40-розрядний регістр MR розділений на три секції (MR0, MR1, MR2). Вміст будь-який з них може бути виведено на DMD-або R-шину і записано з DMD-шини.
    Будь-який з регістрів МАС може читатися і записуватися в одному циклі (читання на початку циклу, запис - в кінці). Прочитане вміст регістра на початку одного циклу записано в кінці попереднього, отже нове значення регістра може бути прочитане лише протягом наступного циклу. Це дозволяє вхідного порту надавати операнд МАС на початку циклу і оперувати з наступним значенням з пам'яті в кінці того ж циклу. Це відноситься і до вихідного регістру.
    Регістри MR, MF, MX, MY продубльовані у вторинному банку (на мал.3.1. Він показаний на задньому плані). Одночасно доступний лише один з банків. Додатковий банк реєстраторів може бути активізований для надзвичайно швидкого контекстного перемикання. Таким чином нове завдання, типу підпрограми обробки переривання, може виконуватися без збереження поточних даних в пам'яті.
    Вибір первинного або додаткового банку регістрів визначається установкою нульового біти в регістрі MSTAT станів процесора. Якщо цей біт встановлений у 0, то обраний первинний банк.
    3.2. Операції МАС
    У цьому розділі описуються операції обчислювального модуля МАС, вхідні формати даних, обробка переповнення і насичення.
    3.2.1. Стандартні функції
    Набір стандартних операцій перерахований в таблиці 3.1.

    Вибір режиму здійснюється установкою 4 біта регістра MSTAT процесора. Якщо цей біт в 1, то обраний цілочисельний режим. У будь-якому форматі блок множення формує 32-розрядний результат і передає його в блок складання/віднімання, де виходить кінцеве значення операції, що записується в MR.

    3.2.2. Вхідні формати
    Для полегшення множення вхідні операнди можуть знаходиться в будь-яких форматах. Вхідні формати визначаються, як частина команди і вибираються динамічно при зверненням до блоку множення.
    1. Знаковий? знаковий - використовується при збільшенні двох знакових чисел простий точності або двох старших частин знакових чисел подвійної точності.
    2. Без знака? знаковий (знаковий? без знака) - використовується при збільшенні верхній частині знакового числа на нижню частину іншого, або для множення знакового числа простий точності з числом тієї ж точності без знака.
    3. Без знака? без знака - використовується при збільшенні чисел простий точності без знаку, або нижніх частин знакових чисел подвійної точності.
    3.2.3. Регістри введення виведення МАС
    Регістри для вхідного порту X - MX0, MX1, AR, MR0, MR1, MR2, SR0, SR1.
    Регістри для вхідного порту Y - MY0, MY1, MF.
    Регістри для вихідного порту R - MR (MR0, MR1, MR2), MF.
    3.2.4. Операції над регістром MR
      Як показано на мал.3.1 регістр MR розбитий на три секції: MR0 (біти 0-15), MR1 (біти 16-31) і MR2 (біти 32 - 39). Кожна з них може бути завантажена з DMD-шини і виведена на R-або DMD-шину. Регістр MR2 пов'язаний з молодшими вісьмома розрядами цих шин. Коли MR2 виводиться на R-або DMD-шину це означає, що знак розширений до 16 розрядів.
    3.2.5. Насичення і переповнення МАС
    Після кожної операції блок складання/віднімання генерує сигнал переповнення MV, що підключений регістру стану арифметики процесора ASTAT. Біт MV встановлюється в 1, якщо результат складання виходить за межі регістрів MR1/MR2 - 32 біта, тобто якщо один з дев'яти старших розрядів регістра MR не 0, або всі нулі.
    Регістр MR має можливість насичення в певному позитивному або негативному значенні, якщо відбувається переповнення. Насичення залежить від стану біта MV регістра станів арифметики ASTAT і біта MSB регістра MR2. Таблиця 3.2. описує операцію насичення.
    Насичення в МАС є швидше за командою, ніж режимом, як у ALU. Вона використовується при завершенні послідовності множень з накопиченням, таким чином, щоб проміжні переповнення не привели суматор до насичення.
    Переповнення більше MSB неприпустимо. У зворотному випадку знаковий розряд буде втрачено і насичення не буде правильним. Однак, щоб досягти цього стану потрібно 255 переповнення.
    3.2.6. Округлення
    Суматор може округляти 40-розрядний результат до 15-16 розряду. Округлення можна віднести до системи команд мікропроцесора. Округлений результат спрямовується або у MR, або в регістр зворотного зв'язку MF. Коли для виводу використовується MF, у нього записується 16-розрядний округлений результат. Аналогічно, якщо для виведення обраний MR, то в MR1 записуються 16 розрядів округленої результату, а в MR2 - ефект округлення, таким чином виходить 24-розрядний округлений результат.
    Суматор використовує незміщене схему округлення. Стандартний метод смещенногпро округлення полягає в запису 1 в 15-ю розрядну позицію. Цей метод викликає ряд позитивних зсувів, починаючи з середини (коли MR = 0х8000), округляючи результат вгору. Суматор ж усуває це зміщення, встановлюючи 16 біт в 0, коли значення регістра MR досягає середини. При цьому парні значення MR1 округлюються вниз, а непарні вгору. Таким чином виходить однорідна послідовність зсувів.
    Приклад типової операції округлення:

    MR2 MR1 MR0
    Неокругленное значення: xxxxxxxx xxxxxxxx00100101 1xxxxxxxxxxxxxxx
    Біт 15 = 1
    Додаємо 1 до 15 розряду і зміщуємо 1
    Округлене значення: xxxxxxxx xxxxxxxx00100110 0xxxxxxxxxxxxxxx
      
    MR2 MR1 MR0
    Неокругленное значення: xxxxxxxx xxxxxxxx01100110 1000000000000000
    Біт 15 = 1 і біти 0-14 = 0
    Додаємо 1 до розряду 15 і Зрушуємо 1
    xxxxxxxx xxxxxxxx01100111 0000000000000000
    Зараз біт 16 = 1, встановлюємо його в 0
    Округлено значення: xxxxxxxx xxxxxxxx01100110 0000000000000000
     
    В останньому випадку 16 біт встановлюється в 0. Цей алгоритм застосовується на кожній операції округлення.
    3.2.7. Зміщене округлення
    Режим зміщеного округлення можливий в процесорах ADSP-217x, ADSP-218x, і ADSP-21msp58/59. Цей режим вибирається шляхом встановлення біта BIARND регістра управління SPORT0. Якщо BIARND = 0, то використовується операція незміщене округлення, якщо BIARND = 1, то зміщеного.
    Приклад:

    MR перед RND Зміщений результат RND незміщене результат RND
    00-0000-8000 00-0001-8000 00-0000-8000
    00-0001-8000 00-0002-8000 00-0002-8000
    00-0000-8001 00-0001-8001 00-0001-8001
    00-0001-8001 00-0002-8001 00-0002-8001
    00-0000-7FFF 00-0000-7FFF 00-0000-7FFF
    00-0001-7FFF 00-0001-7FFF 00-0001-7FFF
      
    Цей режим ефективний тільки, у тому випадку, коли значення регістра MR0 більше 0х8000. У всіх інших випадках працюють звичайні операції округлення. Цей режим дозволяє більш ефективно реалізовувати алгоритми, що використовують зміщене округлення, наприклад, підпрограми мовного стиснення GSM.

    4. BARREL SHIFTER

    Shifter надає повний набір зсувних функцій для 16 - і 32-розрядних операндів. Це арифметичні зрушення, логічні зрушення і нормалізація. Так само shifter виконує сортування. Ці базисні функції можуть бути об'єднані, щоб реалізувати роботу з числами будь-якого формату, в тому числі з плаваючою точкою.
    4.1. Опис блок схеми
    Малюнок 4.1 ілюструє блок схему модуля зсуву. Shifter може бути розділений на наступні частини: масив зсуву, логіка OR/PASS, детектор порядку і логіка порівняння порядку.

    Масив зсуву приймає 16-розрядні дані і в одному циклі може помістити їх в будь-якій позиції 32-розрядного поля виводу. Це дає 49 можливих розміщень в поле виводу. Розміщення 16-ти вхідних розрядів визначається кодом управління C і сигналом посилання HI/LO.
    Масив зсуву і зв'язкова логіка OR/PASS оточені набором регістрів. Вхідний регістр Shifter (SI) містить дані для масиву зсуву і детектора порядку. SI-16-розрядний, записується і читається з DMD-шини. В якості вхідних регістрів для масиву зсуву і детектора порядку можуть служити AR, SR або MR, підключені через R-шину. Вихідний 32-розрядний регістр SR розділений на дві частини по 16 розрядів: SR0 і SR1. Вони можуть бути завантажені з DMD шини і виведені на R-або DMD-шину. Також
         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status