Завдання
Основне завдання (Варіант №125)
Розробити процесор ШПФ з такими вхідними даними:
Тип процесора
TMS320С54

Кількість точок
512

Основа ШПФ
2

Прорідження
часове

Розрядність вхідних даних
24 (12+12)

Такт поступлення вхідних даних
PCI

Час обробки
1,5


Анотація
В даному курсовому проекті розглянуто спосіб реалізації алгоритму ШПФ за основою 2 для сигнального процессора TMS320С54 для 512-розрядних вхідних даних з часовим прорідженням, детально описано механізми обчислення швидкого перетворення Фур`є за заданною основою, властивості та основні характеристики процесора, на якому планується реалізація, підраховано часові ресурси для виконання обчислення, створена функціональна схема системи та написана програма, що реалізує вказаний алгоритм ШПФ на заданому процесорі.
Зміст
Вступ


1. Теоретичний розділ


1.1.Характеристики сигнального процесора TMS320С54


1.2 Опис ШПФ


1.3. Покращення зображень за допомогою медіанної
фільтрації, її переваги і недоліки


2. Аналіз блок-схеми виконання заданої функції обробки сигналів та зображень на заданому типі процесора


3. Розрахунковий розділ


4. Розробка функціональної схеми


5. Розробка програми виконання заданої функції


6. Шляхи підвищення швидкодії МП
7. Аналіз об’єму пристроїв керування і пристроїв обробки


Висновки


Література



Вступ
Аналіз Фур'є закладає основи багатьох методів, що застосовуються в області цифрової обробки сигналів (ЦОС). По суті справи, перетворення Фур'є (фактично існує кілька варіантів таких перетворень) дозволяє співставити сигналу, заданому в часовій області, його еквівалентне представлення в частотній області, і навпаки, якщо відома частотна характеристика сигналу, то зворотне перетворення Фур'є дозволяє визначити відповідний сигнал у часовій області.
Крім того, ці перетворення корисні при проектуванні фільтрів. Частотна характеристика фільтра може бути отримана за допомогою перетворення Фур'є його імпульсної реакції. І навпаки, якщо визначена частотна характеристика сигналу, то необхідна імпульсна реакція може бути отримана за допомогою зворотнього перетворення Фур'є над його частотною характеристикою. Цифрові фільтри можуть бути створені на основі їхньої імпульсної реакції, оскільки коефіцієнти фільтра з кінцевою імпульсною характеристикою (КІХ) ідентичні дискретній імпульсній реакції фільтра.
1.Теоретичний розділ
Характеристики сигнального процесора TMS320С54
1.1.1.Призначення TMS320С54.
TMS320С54 - високопродуктивний цифровий процесор обробки сигналів, що базується на модифікованій гарвардській архітектурі. У цій архітектурі використовуються два простори пам'яті - для програм і для даних зі своїми шинами адреси і даних. По шині даних пам'яті програм з програмної пам'яті пересилаються коди команд і безпосередні операнди. По шині даних пам'яті даних пересилаються дані від всіляких модулів процесора (АЛП, масиву додаткових адресних регістрів і ін.) в пам'ять даних і навпаки. Є команди обміну даними між пам'яттю програм і пам'яттю даних.
У C25 підтримується високий рівень паралелізму. Так, поки дані обробляються в АЛП, в арифметичному пристрої допоміжних регістрів може проводитися інкремент або декремент вмісту цих регістрів.
1.1.2.Властивості ТMS320c25.
Основні характеристики ТMS320c25:
тривалість командного циклу - 50/25 нс (час виконання одиночної команди);
продуктивність - 20 MIPS (мільйонів операцій в секунду);
внутрішнє ОЗП типу SARAM (пам'ять з одиночним доступом) - 9К × 16 біт;
внутрішня пам'ять програм типу ROM - 2К × 16 біт;
1056 ×16 біт - внутрішнє ОЗП подвійного доступу типу DARAM;
224К - максимальний простір зовнішньої пам'яті, що адресується (64К програма, 64К дані, 64К ввід/вивід і 32К глобальні дані);
32-розрядний арифметико-логічний пристрій (ALU), 32-розрядний акумулятор (ACC), і 32-розрядний буфер акумулятора (ACCB);
16-розрядний паралельний логічний пристрій (PLU);
16 × 16- розрядний паралельний помножувач з 32-розрядним регістром результату;
8-рівневий апаратний стек;
зсувачі даних від 0 до 16 розрядів (управо і вліво) і інкрементний 64-розрядний зсуваючий пристрій;
64К паралельних портів вводу/виводу, 16 з яких відбиті на пам'ять;
наявність біт-інверсної адресації (bit-reversed index-addressing mode) для виконання БПФ.
Функціональна блок-діаграма TMS320С54 представлена на рис.1, містить основні блоки і показує маршрути даних в процесорі. Архітектура процесора включає дві основні шини: шину программ, яка передає командні коди і безпосередні операнди з програмної пам'яті і шину даних, що сполучає різні пристрої, такі як арифметико-логічнийпристрій (ALU) і файл допоміжних регістрів з пам'яттю даних. Разом шини програм і даних можуть одночасно подавати співмножники з внутрикристальной пам'яті даних і внутрішньої або зовнішньої пам'яті програм на обидва входи помножувача для забезпечення повнопоточного одноциклового множення або множення/накопичения.
1.1.2.Властивості ТMS320c25.
Основні характеристики ТMS320c25:
тривалість командного циклу - 50/25 нс (час виконання одиночної команди);
продуктивність - 20 MIPS (мільйонів операцій в секунду);
внутрішнє ОЗП типу SARAM (пам'ять з одиночним доступом) - 9К × 16 біт;
внутрішня пам'ять програм типу ROM - 2К × 16 біт;
1056 ×16 біт - внутрішнє ОЗП подвійного доступу типу DARAM;
224К - максимальний простір зовнішньої пам'яті, що адресується (64К програма, 64К дані, 64К ввід/вивід і 32К глобальні дані);
32-розрядний арифметико-логічний пристрій (ALU), 32-розрядний акумулятор (ACC), і 32-розрядний буфер акумулятора (ACCB);
16-розрядний паралельний логічний пристрій (PLU);
16 × 16- розрядний паралельний помножувач з 32-розрядним регістром результату;
8-рівневий апаратний стек;
зсувачі даних від 0 до 16 розрядів (управо і вліво) і інкрементний 64-розрядний зсуваючий пристрій;
64К паралельних портів вводу/виводу, 16 з яких відбиті на пам'ять;
наявність біт-інверсної адресації (bit-reversed index-addressing mode) для виконання БПФ.
Функціональна блок-діаграма TMS320С54 представлена на рис.1, містить основні блоки і показує маршрути даних в процесорі. Архітектура процесора включає дві основні шини: шину программ, яка передає командні коди і безпосередні операнди з програмної пам'яті і шину даних, що сполучає різні пристрої, такі як арифметико-логічнийпристрій (ALU) і файл допоміжних регістрів з пам'яттю даних. Разом шини програм і даних можуть одночасно подавати співмножники з внутрикристальной пам'яті даних і внутрішньої або зовнішньої пам'яті програм на обидва входи помножувача для забезпечення повнопоточного одноциклового множення або множення/накопичения.

Рис.1 Блок-діаграма внутрішніх апаратних засобів TMS320С54
Таблиця 1. Опис виводів
Назва сигналу
Тип
Призначення

A15-0
І/O/Z
Зовнішня шина адрес (Extrenal Bus Address). Вихідна шина, що використовується для адресування зовнішньої пам'яті і периферійних пристроїв.

D15-0
І/O/Z
Зовнішня шина даних (Extrenal Bus Data). Двонаправлена шина даних .

DS
O/Z
Cигнал вибору простору пам’яті даних.
( активний при низькому рівні)

IS
O/Z
Cигнал вибору пристрою вводу/виводу.
( активний при низькому рівні)

PS
O/Z
Cигнал вибору простору пам’яті програм.
( активний при низькому рівні)

STRB
I/O/Z
Cигнал стробування входу/виходу і DMA.
( активний при низькому рівні)

READY
І
Cигнал готовності зовнішнього пристрою.

R / W
І/O/Z
Cигнал читання/запису

RD
O/Z
Cигнал дозволу читання.
( активний при низькому рівні)

WE
О/Z
Cигнал дозволу запису.
( активний при низькому рівні)

BIO
І
Cигнал управління інструкцією переходу.
( активний при низькому рівні)

HOLD
І
Cигнал активізації стану утримання (режим прямого доступу до пам’яті ).
( активний при низькому рівні)

HOLDА
O/Z
Cигнал підтвердження стану зохоплення шини (режим прямого доступу до пам’яті ).
( активний при низькому рівні)

BR
І/O/Z
Cигнал запиту шини дани, входу/виходу .
( активний при низькому рівні)

IAQ
O/Z
Cигнал стробу виконання інструкції.
( активний при низькому рівні)

IACK
O/Z
Cигнал підтвердження переривання.
( активний при низькому рівні)

INT 1-4
І
Вихід зовнішніх переривань 1-4.
(активні при низькому рівні)

NMI
І
Вихід немаскованого переривання .
(активний при низькому рівні)

RS
І
Cигнал скиду.
( активний при низькому рівні)

XF
O
Вивід прапорця стану.

CLKOUT1
O/Z
Cигнал генератора машинного циклу

CLKMD1-2
І
Cигнал вибору режимів тактування 1і 2

CLKIN2
І
Вивід підключення зовнішнього генератора

X2/CLKIN
І
Вивід підключення кварцового резонатора / вхід зовнішньої синхронізації

X1
O
Вивід підключення кварцового резонатора

CLKR
І
Вхід синхросигналу прийому по послідовному порту

CLKX
І/O/Z
Вивід синхросигналу передачі по послідовному порту

DR
І
Вхід даних послідовного порту

DX
O/Z
Вихід даних послідовного порту

FSR
І
Cигнал cтарт-імпульсу прийому по послідовному порту

FSX
І/O/Z
Cигнал cтарт-імпульсу передачі по послідовному порту

TCK
І
Вхід сигналу тактової синхронізації операцій тестової логіки(Test Clock). Асинхронні такти для сканування границь JTAG.

TMS
І
Вибір тестового режиму(Test Mode Select). Використовується для контролю тестовим кінцевим автоматом.

TDI
І
Вхід тестових даних(Test Data Input). Забезпечує послідовні дані на пристрій JTAG сканування.

TDO
O/Z
Вихід тестових даних(Test Data Output). Забезпечує видачу послідовних даних при скануванні JTAG.

TRST
І
Тестовий скид(Test Reset). Сигнал початкової установки вузла сканування.

EMU0
O
Стан емуляції(Emulation Status). Задає стан процесу емуляції.

МP/MC
I
Вибір режиму мікропроцесор/мікрокомп'ютер


Центральний арифметико-логічний пристрій (CALU)
Центральний арифметико-логічний пристрій (CALU або блок обробки
даних) процесора TMS320С54 містить 16-розрядний зсувний регістр що масштабується, 16 × 16-розрядний паралельний помножувач, 32-розрядний
арифметико-логічний пристрій (ALU), 32-розрядний акумулятор (АСС), 32-розрядний буфер акумулятора (ACCB) і додаткові зсувні регістри на виходах акумулятора і помножувача. Цей підрозділ описує пристрої обчислювальній секції процесора і їх функції. Під час виконання типових команд CALU мають місце наступні дії:
1) дані вибираються з пам'яті по шині даних
2) дані пересилаються через масштабуючий зсувний регістр в ALU, де виконуються арифметичні операції
3) результат переміщається в акумулятор.
На один вхід ALU дані завжди поступають з акумулятора, а на іншій можуть подаватися з регістра результату (PREG) помножувача, буфера акумулятора (ACCB) або з масштабуючого сдвигового регістра, що завантажується з пам'яті даних або акумулятора (ACC).
Процесор TMS320C25 виконує арифметичні команди, використовуючи 32-разрядные АЛП і акумулятор. АЛП - універсальний арифметичний модуль, який оперує 16-розрядними операндами (безпосередніми або з пам'яті) або/і 32-розрядними з помножувача або акумулятора. Акумулятор використовується для зберігання результатів, що поступають з АЛП, а також для введення другого операнда в АЛП. 32-розрядний акумулятор розділений на дві частини (старше слово - біти 31:16 і молодше - біти 15:0). Передбачені команди для збереження старшого і молодшого слів вмісту акумулятора в пам'яті. Для швидкого тимчасового збереження вмісту акумулятора є 32-розрядний буфер акумулятора.
На додаток до основного АЛП є паралельний логічний модуль (ПЛП), який виконує логічні операції над даними, не роблячи впливу на вміст акумулятора. ПЛП спрощує порозрядну установку, очищення і тестування, використовувані при управлінні і при операціях над регістрами.
Апаратний помножувач виконує перемножування двох 16-розрядних слів із здобуттям 32-разрядного результату за один командний цикл. Помножувач складається з трьох елементів: власне помножувача, регістра результату (product register PREG) і тимчасового регістра (TREG0). 16-разрядный TREG0 зберігає множник, 32-разрядный PREG містить результат множення. Залежно від використовуваних команд значення множника може бути завантажене з пам'яті даних, пам'яті програм або безпосередньо з команди. Апаратний помножувач дозволяє процесору ефективно виконувати основні операції обробки сигналів, такі як згортка, кореляції, фільтрацію.
8-рівневий апаратний стек служить для зберігання вмісту програмного лічильника при виконанні процедур і підпрограм обробки переривань. При перериваннях регістри (ACC, ARCR, INDX, PMST, PREG, ST0, ST1, TREGs) поміщаються в однорівневий стек і витягуються з нього при поверненні з переривання, що надає можливість перемикати контекст без втрати часу.
Принстонська та гарвардська архітектури
Пригадаємо принципи, що закладено до принстонської (університет міста Princeton, США, де працював Нойман) архітектури та гарвардської (університет міста Harvard, США) архітектури. Перша архітектура має спільну головну пам’ять, де зберігаються коди даних та коди програм. Відрізнення одних кодів від інших здійснюють контекстно. Друга архітектура містить дві відокремлені пам’яті, одну – для даних, іншу – для програм (кодів).

Злиття архітектур поділом на дві частини кешу першого рівня
Необхідність використання гарвардської архітектури можна пояснити так. Ядро комп’ютера Ноймана утворено процесором та головною пам’яттю. Бажано аби обидві компоненти ядра не пригальмовували один одного, тобто працювали з рівною швидкодію. На практиці вузол пам’яті є значно (на два/три порядки) повільнішим від процесора і ця прірва у швидкодії з прогресом технологій лише зростає. Подолати прірву можна структурними методами, збільшуючи смугу (пропускання) пам’яті. Саме цей підхід реалізує гарвардська архітектура з двома запам’ятовувальними пристроями. Зрозуміло, що тут паралельно виконують операції вибирання інструкцій програми, з одного боку, а з другого – вибирання та запис кодів даних і результатів обчислень.
Проте швидкі машини гарвардської архітектури не дозволяють розроблювати для себе програми. Це за них виконують засобами кросових технологій машини принстонської архітектури.
Зрозуміло, що бажано створити машину з дуальною архітектурою, яка водночас запозичує нову якість – швидкодію від гарвардської архітектури та стандартну парадигму розробки програм від принстонської архітектури. Злиття двох архітектур виконують на рівні внутрішньої кеш-пам’яті процесора, у спосіб поділу кеша на кеш даних та кеш інструкцій. Зазначене ілюструє поданий вище рисунок. Злиттям архітектур програмісту надано зручність програмних технологій принстонської архітектури, а процесор відчуває гарвардську архітектуру та значно менше пригальмовується з боку головної пам’яті. Реально ситуація є більш складною, оскільки замість суто гарвардської архітектури застосовують її модифікацію, коли пам’ять програм містить частину кодів даних.
1.2. Опис ШПФ.
1.2.1.Опис швидкого перетворення Фур’є з прорідженням в часі
Дискретний матеріальний сигнал у вигляді кінцевої часової послідовності x(nТ) запишемо як x(nТ), де - число відліків, N – число відліків, T - період дискретизації.
N - точкове дискретне перетворення Фур'є (ДПФ) задається формулою:

де X(k) - частотний k-ий відлік чи k-а спектральна складова сигналу (визначає вихідну частотну послідовність, спектр сигналу),

комплексна експонента, W- ядро перетворення.
При зміні значення n*k на величину кратну N ядро не змінюється (у силу періодичності синуса і косинуса). Тобто ядро по верхньому індексу є періодичною функцією з періодом N. Тому замість добутку n*k можна вставити залишок від ділення його на N , тобто (n*k) mod N. Cпектральна функція X(k) також має період N по аргументу k.
Число множень дійсних відліків сигналу на комплексне ядро в (1) дорівнює N2, а число додавань комплексних чисел - (N -1)N. Кількість цих операцій різко зростає із збільшенням N і приводить до занадто великого часу перетворення.
ДПФ стало широко застосовуватися після винаходу швидких алгоритмів, в основі яких лежить принцип зведення багатоточкового перетворення до малоточкового. Один з них (що став уже класичним) називається ШПФ із проріджу-ванням за часом. Цей алгоритм отриманий за умови, якщо N є ступенем числа 2, тобто , де ? - ціле число, ??0.
Основні формули перетворення, до яких ми прийдемо, виходять при розбивці суми в (1) на дві суми, що містять відліки з парними і непарними номерами

Власне кажучи ця операція являє собою зміну порядку сумування (перегрупу-вання доданків), від якого сума не міняється.
Можна записати , . З врахуванням цього (2) прийме вигляд:

Зауважимо, що суми в (3) являють собою N/2 - точкові ДПФ часових відліків з парними номерами в першій сумі, і непарними номерами в другій сумі.
Позначимо, згідно з [1],
X(k) = X?(k) - ДПФ усіх вхідних відліків дискретного сигналу,

вхідних відліків з парними номерами (перше число в нижньому індексі дорівнює ? - 1, а друге - парному числу (нулю)) ,

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

Спектри і є періодичними функціями з періодом N/2 (у ядрі перетворення замість N стоїть N/2). Величина називається повертаючим множником і володіє наступною цікавою властивістю

Ця властивість надає при обчисленні з номерами k від N/2 до (N -1) використовувати відповідні значення раніше обчислених з номерами від 0 до (N/2 -1) (потрібно тільки змінити знак).
За звичай формулу (4) розбивають на два співвідношення для зазначених вище номерів і одержують основні формули (базові співвідношення) перетворення Фур'є у вигляді

Базові співвідношення вже можна назвати швидким перетворенням Фур'є (ШПФ), тому що число операцій зменшилося. Число множень матеріальних відліків сигналу на комплексне ядро дорівнює . До цього потрібно додати множень комплексних чисел. Число додавань дорівнює

Процес розбиття за схемою базових співвідношень можна продовжувати до тих пір, доки не прийдемо до перетворень Фур'є одиничних відліків (що збігаються із самими відліками). Необхідне число операцій при цьому буде значно менше. У такому вигляді це ШПФ називають ШПФ із проріджуванням за часом.
Для пояснення процесу розбиття розглянемо більш детально, приклад ШПФ при .
Позначимо оператор ДПФ визначених вхідних відліків через F і запишемо відповідності між символами ДПФ, введеними вище, і цим оператором.


Зв'язок між ДПФ із великим і меншим числом точок відповідно до базових співвідношень записується в такий спосіб:


Роботу ШПФ можна пояснити графічно, якщо базові співвідношення, записані в дуже короткій формі

або зобразити графом

Верхній стрілці відповідає додавання, а нижній - віднімання. Попередньо bm-1 домножається на множник повороту WN.
Використовуючи вищенаведене і розташовуючи символи ДПФ у впорядковано-му вигляді, зобразимо ШПФ геометрично за допомогою графа.

Рис.1.2.1. Граф ШПФ із проріджуванням за часом при N=8
Відзначимо, що відліки вхідної послідовності переходять у відповідні ДПФ нульового рівня відповідно до інверсії їхній двійкових номерів (операція називається перестановкою вхідних відліків). Наприклад, десятковий номер 4|10 у двійковому вигляді запишеться як 100|2. Інверсія числа 100|2 (у прочитанні з права на ліво) запишеться як 001|2 = 1|10. Таким чином, вхідний відлік під номером 4 співпаде з першим ДПФ X0,1(0). Перестановку для всіх відліків можна показати стрілками переходу: 0 > 0, 1 > 4, 2 > 2, 3 > 6, 4 > 1, 5> 5, 6 > 3, 7 > 7.

Рис 4. Направлений граф алгоритму ШПФ за основою два з часовимпрорідженням для N=32.
1.3. Покращення зображень за допомогою медіанної фільтрації, її переваги і недоліки
Розглянемо операції, здійснювані у просторовій області над відрахунками цифрового зображення (пікселями) з метою підвищення якості такого зображення. А саме клас операцій, що стосуються методу нелінійної медіанної фільтрації.
Цей метод найбільш ефективний, якщо шум на зображенні має імпульсний характер і являє собою обмежений набір пікових значень на тлі нулів. Медіанний фільтр реалізується як процедура локальної обробки ковзаючим вікном різної форми (маскою), котре містить непарне число відрахунків зображення, і полягає в тому, що для кожного положення вікна відрахунки, які потрапили в нього, упорядковуються за збільшенням (чи зменшенням) значень. Середній звіт у такому перелікові називається медіаною даної групи з N відрахунків. Ця медіана замінює центральний відрахунок у вікні для обробленого сигналу. В результаті застосування медіанного фільтру похилі ділянки і різкі перепади значень яскравості на зображеннях не змінюються. Це дуже корисна властивість саме для зображень, на яких, як відомо, контури несуть основну інформацію. В той же час імпульсні перешкоди, довжина яких складає менше половини вікна, будуть пригнічені.
Переваги медіанних фільтрів:
Проста структура фільтра як для апаратної, так і для програмної реалізації
Фільтр не змінює східчасті й пилкоподібні функції
Фільтр добре придушує одиночні імпульсні перешкоди й випадкові шуми
Медіанний фільтр легко реалізується на два виміри із двомірним вікном будь-якої форми (прямокутне, хрестоподібне, кільцеве, кругове).
Недоліки медіанних фільтрів:
Медіанна фільтрація нелінійна, тому що медіана суми двох довільних послідовностей не дорівнює сумі їхніх медіан, що в ряді випадків може ускладнювати математичний аналіз сигналів
Фільтр викликає зіщільнення вершин трикутних функцій
Придушення білого й гауссового шуму менш ефективне, ніж у лінійних фільтрів.
Слабка ефективність спостерігається також при фільтрації флюктуаційного шуму
Двовимірна обробка приводить до більш істотного ослаблення сигналу
При збільшенні розміру вікна відбувається размиття контурів зображень і, як наслідок, зниження чіткості зображення.
Вказані недоліки методу можна зменшити до мінімуму, якщо скористатися медіанною фильтрацією з динамічним розміром маски (адаптивною медіанною фільтраціею).
Введемо пороговий коефіцієнт відхилення яскравості Sthreshold = [0, 1]. Величини відхилення яскравості сусідніх пікселів A(r, n, m), які потрапили до вікна, розміром n x m, відносно до яскравості центрально відрахунку A(r) запишуться у вигляді:

Тоді критерій, згіднодо якого необхідно збільшувати розмір маски з центральним відліком r, матиме вигляд (2)

Розмивання і збільшення різкості :
При розмиванні перерозподіляються кольори в зображенні і лагідніють різкі межі, тоді як при збільшенні різкості підкреслюються відмінності між кольорами суміжних пікселів і виділяються непомітні деталі.
Ядро розмивання, складається з сукупності коефіцієнтів, кожен з яких менше 1, а їх сума складає 1. Це означає, що кожен піксел поглине щось з кольорів сусідів, але повна яскравість зображення залишиться незмінною. (Якщо сума коефіцієнтів більш ніж 1, яскравість збільшиться; якщо менше ніж 1, яскравість зменшиться.) У ядрі різкості центральний коефіцієнт більше 1, а оточений він негативними числами, сума яких на одиницю менше центрального коефіцієнта. Таким чином збільшується будь-який існуючий контраст між кольором пікселя і кольорами його сусідів.
Алгоритм розмивання і збільшення різкості :
1. При підготовці до розмивання цифрове зображення прочитується в пам'ять комп'ютера у вигляді червоної, зеленої і синьої компонент кольору кожного піксела.
2. Ядро розмивання розміром 3х3 застосовується до червоної, зеленої і синьої компонентам кольору кожного піксела в зображенні. Значення кольору піксела, який знаходиться внизу під центром ядра, обчислюється множенням вагових коефіцієнтів ядра на відповідні значення кольору в зображенні і підсумовуванням результатів.
3. Підсумкове зображення вийшло розмитим в порівнянні з оригіналом тому, що колір кожного піксела розповсюдився серед сусідів. Ступінь розмивання можна збільшити або використовуючи ядро більшого розміру, щоб розподілити кольори серед більшого числа сусідів, або, підбираючи коефіцієнти ядра і зменшуючи вплив центрального коефіцієнта, або фільтруючи зображення ще раз з ядром розмивання.
4. Збільшення різкості досягається точно так, як і розмивання, за винятком того, що використовуються інше ядро. Ми перетворюватимемо те ж зображення що і раніше, але з іншою метою збільшити, а не зменшити чіткість зображення.
5. При обробці кожного піксела в зображенні використовується ядро різкості розміром 3х3. Як і раніше, червона, зелена і синя колірні складові обработаиваютя окремо і пізніше об'єднуються, щоб сформувати 24-бітове значення кольору. Негативні ваги навколо центру ядра збільшують контраст між центральним пікселом і сусідами.
6. Кінцеве зображення явно чіткіше чим оригінал. Додаткові деталі не виникли з повітря; процес збільшення різкості просто підвищив існуючий контраст між пікселами. При повторній обробці зображення чіткість може збільшитися ще більше.
Програмний код покращення різкості
int K,T;
Byte*ptr_byte;
int Zastup;
int Oblast;
int AclB,AclG,AclR;
TRect Dest,Source;
if(IsFileOpen)if((MyBitmap2->Height>0)&&(MyBitmap2->Width>0)){
k=1;//<-- {2}
Zastup=k;
Oblast=(2*k+1)*(2*k+1);
for(int i=k;i<=MyBitmap2->Height-1-k;i++)
for(int j=k;j<=MyBitmap2->Width-1-k;j++){
AclB=0;AclG=0;AclR=0;
for(int ii=i-k;ii<=i+k;ii++)
for(int jj=j-k;jj<=j+k;jj++){
AclB=AclB+clB[ii][jj];
AclG=AclG+clG[ii][jj];
AclR=AclR+clR[ii][jj];}
T=clB[i][j]+clG[i][j]+clR[i][j]
+(clB[i][j]+clG[i][j]+clR[i][j])/Oblast
-(AclB+AclG+AclR)/Oblast;
T=T*8/10;
clB_2[i][j]=clB[i][j]+T;
clG_2[i][j]=clG[i][j]+T;
clR_2[i][j]=clR[i][j]+T;
}
for(int i=0;i<MyBitmap2->Height;i++)
for(int j=0;j<MyBitmap2->Width;j++){
clB[i][j]=clB_2[i][j];
clG[i][j]=clG_2[i][j];
clR[i][j]=clR_2[i][j];}
for(int i=0;i<MyBitmap2->Height;i++){
ptr_byte=(Byte*)MyBitmap2->ScanLine[i];
for(int j=0;j<MyBitmap2->Width;j++){
if (clB[i][j]<0) ptr_byte[3*j ]=0 ;else
if (clB[i][j]>255) ptr_byte[3*j ]=255 ;else
ptr_byte[3*j ]= clB[i][j];
if (clG[i][j]<0) ptr_byte[3*j+1]=0 ;else
if (clG[i][j]>255) ptr_byte[3*j+1]=255 ;else
ptr_byte[3*j+1]= clG[i][j];
if (clR[i][j]<0) ptr_byte[3*j+2]=0 ;else
if (clR[i][j]>255) ptr_byte[3*j+2]=255 ;else
ptr_byte[3*j+2]= clR[i][j];}}
for(int i=0;i<MyBitmap->Height;i++){
ptr_byte=(Byte*)MyBitmap->ScanLine[i];
for(int j=0;j<MyBitmap->Width;j++){
ptr_byte[3*j ]=128;
ptr_byte[3*j+1]=128;
ptr_byte[3*j+2]=128;}}
Dest.Left=(Image1->Width-MyBitmap2->Width)/2-Zoom/2;
Dest.Top=(Image1->Height-MyBitmap2->Height)/2-Zoom/2;
Dest.Right=Image1->Width-(Image1->Width-MyBitmap2->Width)/2+Zoom/2;
Dest.Bottom=Image1->Height-(Image1->Height-MyBitmap2->Height)/2+Zoom/2;
Source.Left=0;
Source.Top=0;
Source.Right=MyBitmap2->Width;
Source.Bottom=MyBitmap2->Height;
MyBitmap->Canvas->CopyRect(Dest,MyBitmap2->Canvas,Source);
Image1->Picture->Bitmap=MyBitmap;
Image1->Picture->Bitmap->Modified=true;}
Аналіз та розробка блок-схеми виконання заданої функції обробки сигналів та зображень.
Алгоритм базової операції ШПФ за основою 2 і проріджування за часом можна представити у вигляді
А'1 = А1 + A2 W1,
A'2 = A1 - A2 W1,
де A'1, A'2 - результати базової операції; А1, А2 - вхідні відліки; W1 - комплексний коефіцієнт; j- уявна одиниця, верхній знак перед j відповідає прямому, нижній - оберненому ШПФ.
ReA'1 = ReA1 + Re(A2W1) = ReA1 + ReA2ReW1 – ImA2ImW1 ,
ІмA'1 = j( ImA1 + ReA2ImW1+ImA2ReW1),
ReA'2 = ReA1 - ReA2ReW1 + ImA2ImW1,
ІмA'2 = j( ImA1 - ReA2ImW1-ImA2ReW1),
Для виконання базової операції вимагається виконати 8 операції множення і 8 додавання.


Рис 5. «Метелик» алгоритму ШПФ з прорідженням по часу

Рис 6. Блок-схема 32768-точкового перетворення за основою 2
3.Розрахунковий розділ
Частота роботи процесора: , звідси цикл виконання команди: .
base – основа базової операції «метелик»;
N – кількість точок вхідного перетворення;
base=2;
N=512;
– кількість етапів перетворення;
– кількість базових операцій «метелик» на одному етапі;
– кількість базових операцій у всьому перетворенні;



Для виконання базової операції «метелик» необхідно:
8 операцій множення;
8 операцій додавання;
8 операцій читання з пам`яті:
- 2*2=4 (для читання дійсної та уявної частини вхідних відліків);
- 2*2=4 (для читання дійсної та уявної частини комплексних коефіцієнтів);
4 операцій запису:
- 2*2=2 (для запису дійсної та уявної частини вхідних відліків);
В результаті на одну базову операцію припадає 28 операцій: Nна 1 мет=28 (оп)
Тривалість виконання обчислення ШПФ:

Тривалість надходження даних у процесор для обробки:
Тнадх=20нс – такт надходження даних;

Тривалість надходження даних у процесор та тривалість обчислення ШПФ:

Ця величина більша за заданий час обробки: , тобто для виконання обчислення не достатньо одного процесора.
Процесор TMS320С54 має внутрішнє 1056-слівне ОЗП подвійного доступу (ДОЗП). ДОЗП розділено на три независимі вибираних блоки пам'яті: 512-слів даних або програм B0, 512-слів даних B1 і 32-слова даних B2.
Блоки B1 і B2 завжди конфігуровані в пам'ять даних; а блок B0 може бути програмно конфігурований як в пам'ять даних, так і в програм. ДОЗУ може бути конфігуровано одним з двох способів:
- все 1056 слів конфігуровано в пам'ять даних;
Для розв`язання поставленої задачі необхідно 512×2×2=2048 слів по 16 розрядів. 2048 х 16=211х16. Бо треба зберігати як вхідну послідовність так і вихідну.Тобто внутрішньої ОЗП не вистачає, але оскільки використовуватиметься декілька процесорів, то загальної пам'яті вистачить.
Для зберігання повертаючих множників необхідно ПЗП об`ємом:
393216х16, оскільки на 1 операцію метелик необхідно 1 повертаючий множник, яких містить дійсну та уявну частину, розрядність операндів є 16. Тому 1*2*512=1024.
Окремо використовуємо завантажувальну пам`ять, де буде зберігатися лістінг програми.

Рис 7. Ділянка пам`яті внутрішньої ОЗП, що приймає участь в обробці
4. Розробка функціональної схеми
4.1. Вибір мікропроцесора
Згідно варіанту завдання було вибрано процесор TMS320С54, тактова частота роботи якого – 40МГц і відповідна тривалість такту – 25нс. На вхід сигнального мікропроцесора надходять такі сигнали:
– сигнали підключення зовнішнього сигналу синхронізації;
– глобальний сигнал аппаратного скиду;
– сигнал зовнішнього маскованого переривання;
- вибір режиму роботи мікропроцесор/мікрокомп'ютер;
Вихідними та двонапрямленими сигналами по відношенню до мікропроцесора є:
– сигнал вибору кристалу мікросхеми завантажувальної пам`яті і памяті програм;
A[15:0] – шина адреси;
D[15:0] – шина даних;
– строб читання даних з зовнішнього пристрою у мікропроцесор;
– строб запису даних у зовнішній пристрій з мікропроцесора;
– сигнали вибору кристалу зовнішнього ПЗП та зовнішнього ОЗП;
- вхід синхросигналу прийому по послідовному порту;
- вхід даних послідовного порту;
- вивід старт-імпульсу прийому по послідовного порту;
- вивід синхросигналу передачі по послідовному порту;
- вивід даних послідовного порту;
- вивід старт-імпульсу передачі по послідовного порту;
Інші сигнали або не задіяні, або їх використання не розглядається у данному курсовому проекті. Наприклад, виведення оброблених даних на зовні з мікропроцесора є передбаченим каналами прямого доступу до пам`яті DMA і є відповідний фонд часу для здійснення цієї операції.
4.2. Пам’ять завантаження
Процесор TMS320С54 містить 2К х 16-розрядне внутрішнє, програмоване ПЗП (лише для читання).
Це пам’ять типу EPROM, тобто стирання старої інформації та запис нової є можливим, але лише в результаті спеціального процесу, для здійснення якого запам`ятовуючий пристрій виводиться з робочого режиму (читання даних) та проводиться репрограмування (стирання відбувається за допомогою ультрафіолетових променів).
Ця пам'ять використовується в основному для зберігання програми початкового завантаження (boot loader) яка забезпечує декілька різних варіантів закачування призначеного для користувача програмного коду у велике внутрішнє ОЗП. Якщо при скиданні на вході МС / MP був встановлений низький рівень (режим мікрокомпютер), то процесор почне виконувати програмний код, що міститься у внутрішньому ПЗП. Як тільки програма користувача буде завантажена у внутрішнє ОЗП, внутрішнє ПЗП може бути видалене з простору пам'яті програм шляхом програмної установки біта МС / MP в одиницю (регістр PMST). Якщо при скиданні на вході МС / MP встановити високий рівень (режим мікропроцесор), виконуватиметься програма, розташована у зовнішній пам'яті. Відзначимо, що зміна сигналу на вході МС / MP актуально лише під час скидання, а надалі не робить жодного впливу на відповідний біт.
В даному проекті цей блок пам`яті використовується для зберігання програми обчислення алгоритму ШПФ, тому на вході МС / MP має бути встановлений низький рівень тоді внутрішнє ПЗП буде доступним (режим мікрокомпютера).
4.3. Зовнішнє ПЗП
Запам`ятовуючий пристрій типу ROM (призначена тільки для читання) зберігає інформацію, що ніколи не змінюється. Інформація записується у нього при виготовленні на промисловому підприємстві з допомогою шаблона (масок) на завершальному етапі технологічного процесу.
В даному курсовому проекті пам’ять цього типу використовується для зберігання повертаючих множників, її розмір обґрунтований у вищенаведеному розділі і складає 65536×16 біт .
4.4. Внутрішнє ОЗП
Процесор TMS320С54 має внутрішнє 1056-слівне ОЗП(DARAM) подвійного доступу (ПОЗП). ПОЗУ розділено на три незалежні вибірні блоки пам'яті: 512-слів даних або програм B0, 512-слів даних B1 і 32-слова даних B2.
Блоки B1 і B2 завжди конфігуровані в пам'ять даних; а блок B0 може бути
програмно конфігурований як в пам'ять даних, так і в програм. ПОЗП може бути
конфігуровано одним з двох способів:
всі 1056 слів конфігуровано в пам'ять даних;
544 слова конфігуровані в пам'ять даних і 512 слова конфігуровані в
пам'ять програм.
ПОЗП здатне реально збільшити швидкість роботи процесора. Завдяки
роздільним шинам адреси читання і адреси запису і роздільним шинам даних для читання і для запису, TMS320С54 здатний прочитувати з, і писати в ПОЗП в одному і тому же машинному циклі. Необхідно відзначити, що процесор працює в чотирьох рівневому конвеєрі. При цьому читання дані відбувається в третій, а запис даних в четвертій стадії конвеєра. Тому друга інструкція читання даних виконується одночасно з першою інструкцією запису даних.
В даному проекті цей блок пам`яті сконфігурований як 1056 слів памяті даних в яких містяться вхідна послідовність і результат обчисленого ШПФ.
Процесор TMS320С54 містить 9K × 16-бітний внутрішній оперативний пристрій одинарного доступу(SARAM), що запам'ятовує (ОЗП). Вибірка програмної коди з області зовнішньої пам'яті вимагає в кращому разі одного додаткового машинного циклу. Замість цього код може бути завантажений у велике внутрішнє ОЗП і потім виконаний на повній швидкості.
ОЗУ може бути програмно конфігуроване одним з трьох способів:
все ОЗУ конфігуроване в пам'ять даних;
все ОЗУ конфігуроване в пам'ять програм;
ОЗУ конфігуроване одночасно в пам'ять даних і в пам'ять програм.
ОЗУ розбите на блоки: чотири по 2K-слів і один 1К-слів. ЦПУ підтримує паралельний доступ до цих блоків ОЗУ. Якщо інструкція читання і запису звертається одночасно до різних блоків ОЗУ, логіка доступу розподіляє запити так щоб забезпечити обмін протягом одного машинного циклу. В разі одночасного звернення в один і той же блок потрібний додатковий машинний цикл.
В даному проекті цей все ОЗУ сконфігуроване в пам'ять програм в яку завантажується програма обробки з ПЗП початкового завантаження.

Рис 8. Карта розподілу пам'яті ТMS320c25
4.5 Локальная шина PCI
Локальна шина PCI - це високопродуктивна 32-бітова або 64-бітова шина з мультіплексированнимі лініями адреси і даних. Вона призначена для використання як механізм, що пов'язує, між собою високоінтегровані периферійні контроллери введення-виводу, периферійні вбудовувані плати і системи процесор/пам'ять.
Характеристики:
«Прозорий» перехід від 32-розрядних даних (132 Мб/сек) до 64-розрядних (264 Мб/сек).
Змінна довжина і перемикаючий режим як для читання, так і для запису, що підвищують продуктивність при роботі з графікою.
Довільний доступ з малим часом затримки (затримка 64нс при записі в «допоміжні» регістри з «управителя» шини).
Можливість повного паралелізму підсистеми процесор/пам'ять.
Синхронізація шини частотою до 33 Мгц.
Прихований центральний арбітраж.

Рис9. Список виводів PCI
Розробка структурної схеми пристрою
Для побудови структурної схеми пристрою необхідно проаналізувати стадії проходження сигналу: від вхідної послідовності до кінцевого результату. На першому етапі вже шістнадцять бітове значення ми маємо зберегти в пам’яті для подальшої обробки. На другому етапі, коли всі 131072 числа буде записано - керування отримує процесор, який виконує ДКП та видає результат, також необхідно врахувати, що при обчисленні ДКП необхідно значення вагових коефіцієнтів. Для зменшення обрахунків, а відповідно і часу загального обрахунку процесором, значення вагових коефіцієнтів, вже попередньо-обраховані, будуть знаходитись у постійному запам’ятовуючому пристрої.
Отже проаналізувавши всі етапи ми можемо виділити наступні структурні одиниці: пристрій керування(ПК) для формування керуючих сигналів та адреси комірки пам’яті в яку необхідно записати число, оперативний запам’ятовуючий пристрій(RAM), постійний запам’ятовуючий пристрій(ROM), процесор(CPU), схема початкового встановлення пристрою(R) та схема синхронізації(S). Отриману схему зображено на рис. 6.
Рис. 6 – структурна схема пристрою
Розробка пристрою керування
Пристрій керування в нашому проекті має виконувати наступні функції:
формувати адресу комірки пам’яті, в яку необхідно записати число;
формувати сигнал завершення запису до пам’яті;
Розглянемо реалізацію кожної функції окремо.
В пристрою керування використовується 3 синхронних лічильника, включені каскадно. На вхід (+1) першого лічильника подаються тактові імпульси (SYN). Лічильники дораховують до 131072і скидаються в «0». Формується сигнал , який повідомляє процесор про завершення передачі даних в пам’ять.
На виході лічильників використовуються 3 буфери, які відділяють шину адресу і даних процесора від вхідних даних і сформованих адрес лічильником.
Опис роботи функціональної схеми
Робота схеми починається після того, як сигнал скидання переходить в стан логічного „0”. Зовні подаються сигнали стробу(STRB = «1»), запису даних(WR = «1») і самі дані(DATA). Буфери готові до передачі даних і адрес до пам’яті. Коли лічильник дорахує до 4096 він сформує сигнал завершення передачі даних і скине лічильники в «0». Буфери по сигналу стробу відєднаються від шини даних і адреси.
Для вибірки потрібної пам’яті (ПЗП чи ОЗУ) використовується дешифратор адреси (DC), який керується сигналом A21(див табл. 2).
Табл. 2
А21
Пам’ять

0
ПЗП

1
ОЗП(2)


Процесор отримавши сигнал завершення передачі почне зчитувати дані з ОЗУ(1) і виконує Дискретне косинусне перетворення, причому записуючи проміжні дані в ОЗУ(2). Після завершення перетворення процесор формує вихіднй сигнал, який оповіщає зовнішній пристрій про початок передачі нових пакетів даних. Після цього починається новий цикл обробки сигналу.
5. Розробка програми виконання алгоритму ШПФ
Структуру програми, що виконує обчислення за алгоритмом ШПФ можна уявити наступним чином:

Рис 9. Узагальнена блок-схема алгоритму
Кожен з трьох циклів призначений для правильного визначення номеру відліку в конкретний момент обчислення. Перший цикл визначає номер ярусу, другий – номер базової операції у ярусі, третій – номер відліку у базовій операції.
Вводиться масив, що зберігає відліки, в програмі названий matrix, його номер відповідно – N (кількість точок перетворення). Кожен елемент массиву – комплексне число. Інший массив W призначений для зберігання повертаючи множників. На кожну базову операцію припадає 1 повертаючий множник.
Текст програми, написаної на мові С, поданий нижче.
#include "stdafx.h"
#include "Lab2_FFT.h"
#include "Lab2_FFTDlg.h"
#include <math.h>
#include <string.h>
struct my_W {
double ReW;
double ImW;
};
struct my_x {
double Rex;
double Imx;
};
struct my_X {
double ReX;
double ImX;
};
// CLab2_FFTDlg dialog
CLab2_FFTDlg::CLab2_FFTDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLab2_FFTDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLab2_FFTDlg)
m_met = 0;
m_Time_FFT = 0;
m_N = 32;

} struct my_W W[32];
struct my_x x[32];
struct my_x save_start_x[32];
CTime Timers = CTime::GetCurrentTime();
int sec = Timers.GetSecond();
const double pi=3.14159;
for(int i=0;i<m_N/2; i++)
{ W[i].ReW = cos(2*pi*i/m_N);
W[i].ImW = -sin(2*pi*i/m_N);
}
for(int n=0;n<m_N; n++)
{
x[n].Rex = 0;
for(int k=0;k<=(m_N/2-1);k++)
{
x[n].Rex += sin(2*pi*n*k/m_N);
}
x[n].Rex = x[n].Rex /m_N*2;
save_start_x[n].Rex = x[n].Rex; // save start data for output at the end of the program
x[n].Imx = 0;
save_start_x[n].Imx = x[n].Imx; // save start data for output at the end of the program
}
int st=0,f;
f=m_N;
do { f/=2; st++;} // kilkist vukon obch na jarusah
while (f!=2);

int met=0;
for(int steps=st;steps>=st-5;steps--)
{
if (steps==st) // No "W" at the first stage
{
for(int j=0;j<m_N/2;j++)
{
x[j].Rex = x[j].Rex + x[j+(int)pow(2,steps)].Rex; //
x[j].Imx = x[j].Imx + x[j+(int)pow(2,steps)].Imx;
x[j+(int)pow(2,steps)].Rex = x[j].Rex - x[j+(int)pow(2,steps)].Rex;
x[j+(int)pow(2,steps)].Imx = x[j].Imx - x[j+(int)pow(2,steps)].Imx;
met++;
}
}
if (steps!=st)
{
int f1,f2,f3;
f1=(int)pow(2,steps);
for(int j=0;j<m_N;j++)
{
f2=j / f1;
f3 = f2 * (f1 /2);
if (f2 % 2 == 0) //
{
x[j].Rex = x[j].Rex + x[j+f1].Rex * W[f3].ReW - x[j+f1].Imx * W[f3].ImW;
x[j].Imx = x[j].Imx + x[j+f1].Imx * W[f3].ReW + x[j+f1].Rex * W[f3].ImW;
met++;
}
if (f2 % 2 != 0)
{
x[j].Rex = x[j-f1].Rex - x[j].Rex * W[f3].ReW + x[j].Imx * W[f3].ImW;
x[j].Imx = x[j-f1].Imx - x[j].Imx * W[f3].ReW - x[j].Rex * W[f3].ImW;
}
}
}
}
Timers = CTime::GetCurrentTime();
sec = -sec;
sec += Timers.GetSecond();
if(sec<0) sec +=60;
m_Time_FFT = sec;
m_met = met;
6. Шляхи підвищення швидкодії
До основних напрямків підвищення продуктивності МП та МПС можна віднести наступне:
1. Вдосконалення існуючих архітектур МП та МПС, сучасної елементної бази обчислювальної техніки.
2. Розробка принципово нових архітектур МП та МПС, що базуються на нетрадиційних методах організації обчислень та використанні нової елементної бази.
Основними напрямками підвищення продуктивності сучасних обчислювальних систем є конвеєризації та розпаралелюванні обчислень – як на рівні МП, та к і на рівні МПС.
Крім конвеєризації та розпаралелювання обчислень, у сучасних МП та МПС застосовується ще велика кількість архітектурних (та технологічних) рішень, що сприяють підвищенню їх швидкодії:
1. Поступовий перехід від паралельних системних та зовнішніх інтерфейсів до послідовних.
2. Застосування RISK- ядра у універсальних МП.
3. Інтеграція більшості контролерів периферійних та комунікаційних пристроїв безпосередньо у складі системних плат ПК.
4. Збільшення розрядності МП.
5. Широке застосування багаторівневої кеш-пам’яті.
В дійсний час існують дві основні структури побудови великих багатопроцесорних систем високої продуктивності: матрична структура і структура з конвеєрним обробленням команд.
Підвищити швидкодію виконання алгоритму в TMS320С54 можна такими способами:
Конвеєризація.
Схема роботи конвеєра TMS320С54виглядає наступним чином:
Конвеєризація команди складається з послідовності шинних операцій які зустрічаються під час виконання інструкції. Конвеєр команд: вибрати - декодувати - вибрати операнд - виконати є прозорим для користувача виключаючи деякі випадки, коли конвеєр може бути зіпсований (такі як команди переходу). У роботі конвеєра операції вибору команди, декодування, вибору
операнда і виконання є незалежними, що допускає повне виконання команди до перекриття. Таким чином, протягом будь-якого узятого циклу можуть активуватися від однієї до чотирьох різних команд. Рис 10. показує роботу чотирьохрівневого конвеєра для одноциклових команд, що складаються з одного слова.

Рис 10. Робота чотирьохрівневого конвеєра.
Апаратне виконання.
Пришвидшити виконання ШПФ можна якщо апаратно реалізувати біт-інверсну адресацію. Така можливість є в TMS320С54.
Біт-інверсний адресний режим на TMS320С54 дозволяє ефективно виконувати алгоритми швидкого перетворення Фур'є (ШПФ). Напрям перенесення слідування в ARAU інверсне, коли вибраний цей режим, і INDX добавляєтся/віднімається до/із поточного додаткового регістра. Типове використання цього адресного режиму вимагає, щоб в INDX було завантажено значення що визначає розмір масиву, і в AR(ARP) була завантажена базова адреса даних (першазаслання на дані ).
Ще один спосіб це апаратна реалізація множення, оскільки програмна реалізація займає купу машинних циклів а в ШПФ множень багато.
В TMS320С54 є апаратний помножувач, що виконує перемножування
двох 16-розрядних слів із здобуттям 32-разрядного результату за один командний цикл. Помножувач складається з трьох елементів: власне помножувача, регістра результату (product register PREG) і тимчасового регістра (TREG0). 16-разрядный TREG0 зберігає множник, 32-разрядный PREG містить результат множення. Залежно від використовуваних команд значення множника може бути завантажене з пам'яті даних, пам'яті програм або безпосередньо з команди. Апаратний помножувач дозволяє процесору ефективно виконувати основні операції обробки сигналів, такі як згортка, кореляції, фільтрацію.
Паралелізм.
В TMS320С54 закладено параллелизм архітектури що позволяє процессору виконувати 3 паралельних операції пам'яті в будь-якому машинному циклі: вибірка інструкції ; читання операнда; запис операнда.
Розбиття задачі на підзадачі
Завдяки правильному розподілу задачі між відповідними компонентами системи можна отримати пришвидшення швидкодії , тобто ми повинні розбивати задачу наступним чином щоб максимально використати ресурси процесора, щоб можна було паралельно виконати якомога більшу кількість операцій.
7. Аналіз об’єму пристроїв керування і пристроїв обробки
В будь якій системі відбувається певний розподіл ресурсів на управлінські і виконавчі.Це стосується не лише компютерної системи а й наприклад системи університету, супермаркету, і т.д. Розглянемо дане спввідношення з точки зору певної структури магазину. При невеликому розмірі цілком може вистачати одного керівника щоб керувати 10-20 людьми , але візьмемо за приклад великий супермаркет де працюють сотні працівників і відповідно мусить бути збільшенний і керівний склад до десятка. Тобто в принципі чим менша кількість ресурсів затрачається на керування ситемою , тим на перший погляд може виявитись краще. Але задачі управління є надзвичайно важливими і неефективне управління 5% керівників може зробити абсолютно неефективною роботу 95% решти працівників,Але надлишковість управління є також шкідливою , оскільки на управління затрачаються значні ресурси системи. Тобто кількість ресурсів задіяних на управління має використовуватись повністю і бути якомога меншою на рівні 1-10%, в залежності від складності задач управління.
Щодо процесора TMS320С54 то для аналізу об’єму пристроїв керування існую декілька варіантів.Перш за все це отримання фотографії-схеми кристалу де розписані певні блоки , і пізніше порівняння площі пристроїв управління і обробки.Дригий варіант це отримання інформації про розмір даних пристроїв (кількість транзисторів, логічних блоків) з подальшим порівнянням .Під час роботи над даним проектом я звернувся в компанію TI з проханням надати дану інформацію у відповідь я отримав наступного листа. «We regret to inform You that Your request applies to Copyright lagislation. No producer can give such details without a special agreement and associated developers' approval. On top of all there are several microsheme groups and types in the TMS320 processors in question, i.e. C2000, C5000, C6000 ( C/VC/F/DM), fixed-point/floating point etc».Тобто дана інформація не розкривається виробником крисалу і захищенна авторським правом. Тому даний аналіз саме для процесора TMS є практично неможливим у звязку з відсутністю достатньої кількості інформації.
Висновки
Під час виконання курсового проекту було розглянуто приклад реалізації обчислювальної системи, в основі якої лежить алгоритм швидкого перетворення Фур’є за основою 2. До системи належить процесор TMS320С54, блок зовнішнього ПЗП, для зберігання повертаючи множників, які використовуються при обчисленні ШПФ і блок зовнішньої пам’яті типу RAM, де безпосередньо зберігаються дані, що надійшли, і пам'ять завантаження реалізована як внутрікристальна оскільки ії об’єму цілком вистачає для реалізації даного алгоритму.
В результаті набуто досвід у проектуванні обчислювальної системи, розглянуто основні компоненти, з яких вона складається, засвоєно алгоритми, на основі яких виконується обчислення.
Література
Цифровые фильтры и устройства обработи сигналов на интегральных микросхемах: Справочное пособие/Ф.Б.Высоцкий, В.И. Алексеев, В.П. Пачин и др.; Под ред. Б.Ф.Высоцкого.-М.: Радио и связь, 1984.-216с.
Куприянов М. С., Матюшкин Б. Д. Цифровая обработка сигналов: процессоры, алгоритмы, средства проектирования. – Спб. : Политехника, 1998.
Марков С. Цифровые сигнальные процессоры. Книга 1, М.:фирма МИКРОАРТ, 1996-144 с.
Цифровой процессор обработки сигналов TMS32010 и его применение/Под ред. А.А.Ланнэ.-Л.:ВАС,1990.-296 с.
Мельник А.А. Проектирование поточного процессора БПФ на специализированных БИС.- Львов, 1990.- 43с.
Применение цифровой обработки сигналов/ Под ред. Э.Оппенгейма.- М. Мир, 1980.- 552с.
Бондарев В.Н., Трестер Г., Чернега В.С. Цифровая обработка сигналов: методы и средства. Учебное пособие для вузов. 2-е изд. – Х.: Конус, 2001.- 398 с.
Цифровая обработка сигналов/ А.Б.Сергиенко – СПб.:Питер, 2002.-608с.