реклама на сайте
подробности

 
 
> To RAM or no to RAM - вот в чём вопрос!
m0use
сообщение Oct 5 2010, 08:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 6-08-10
Пользователь №: 58 790



Привет, ребят.

Стою перед дилемой просто. Нужна обработка матриц - перемножение, сложение элементов. У меня такие мысли.

С первого взгляда, достаточно удобно описывать матрицу как RAM, особенно когда нужно перемножать элементы (на аппаратных умножителях). Но в таком случае за один CLK можно работать только с одним элементом массива (считывать из памяти). Это большое но, потому что хочется максимально распараллелить обработку матрицы. То есть хочется одновременного доступа ко всем элементам - но (и опять же но) комбинаторной логике много, наверно, получается - скорость падает.

Есть ли компромисс? Использовать небольшие блоки памяти? Подскажите, уважаемые коллеги! И вообще верны ли мои рассуждения? smile.gif.


--------------------
Усложнять - просто, упрощать - сложно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
m0use
сообщение Oct 7 2010, 21:30
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 6-08-10
Пользователь №: 58 790



Ребят, всем спасибо за советы и помощь. Я бы хотел теперь поделиться практическими результатами. Написал две реализации модуля, который принимает входное изображение, получает градиентные матрицы и перемножает их элементы. Одна реализация - конвеер с отводами, другая основана на использовании RAM.

Входная матрица - 8x6.

Речь прежде всего о скорости. И вот какие результаты:
конвеер - порядка 220 МГц,
RAM - порядка 120 МГц.

При этом в первом случае для полного прохода ещё и тактов меньше требуется.

Прикладываю RTL-схемы модулей для наглядности.

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

К чему я. Возникло предположение, что подход с конвеером здесь более эффективен. Получается, где поток данных "проходит" через кристалл, не задерживаясь, RAM не к месту? RAM оправдана там, где данные "задерживаются" для многократного вторичного использования? Или как smile.gif ?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Усложнять - просто, упрощать - сложно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- m0use   To RAM or no to RAM - вот в чём вопрос!   Oct 5 2010, 08:52
- - Maverick   Цитата(m0use @ Oct 5 2010, 11:52) Привет,...   Oct 5 2010, 08:57
- - rv3dll(lex)   ващето память имеет скорость больше чем остальная ...   Oct 5 2010, 10:59
|- - D13   Цитата(rv3dll(lex) @ Oct 5 2010, 17...   Oct 5 2010, 11:28
- - m0use   Цитатакакого размера матрицы? и элементы в матрице...   Oct 5 2010, 11:33
|- - Maverick   Цитата(m0use @ Oct 5 2010, 14:33) Неплохо...   Oct 5 2010, 14:02
- - Koluchiy   Маленькие блоки RAM - это распределенная RAM. Если...   Oct 5 2010, 11:44
- - m0use   ЦитатаМаленькие блоки RAM - это распределенная RAM...   Oct 5 2010, 11:58
|- - des00   Цитата(m0use @ Oct 5 2010, 06:58) Просто,...   Oct 5 2010, 12:05
- - m0use   Цитатаа ничего что латентность чтения у этих блоко...   Oct 5 2010, 12:16
- - rv3dll(lex)   вообще про какую плис речь? для памяти нужен свой...   Oct 5 2010, 12:57
- - m0use   А менеждеры клоков умеют получать из одного клока ...   Oct 5 2010, 13:08
- - m0use   ЦитатаПочему бы не взять за основу матрицу 8х6? Ка...   Oct 5 2010, 14:38
|- - Maverick   Цитата(m0use @ Oct 5 2010, 17:38) для ко...   Oct 5 2010, 14:46
|- - vadimuzzz   Цитата(m0use @ Oct 5 2010, 21:38) Теперь ...   Oct 5 2010, 22:43
|- - rv3dll(lex)   Цитата(vadimuzzz @ Oct 6 2010, 02:43) ест...   Oct 6 2010, 04:48
|- - vadimuzzz   Цитата(rv3dll(lex) @ Oct 6 2010, 11...   Oct 6 2010, 05:42
- - Koluchiy   Цитатакак по мне лучше распределенная память - на ...   Oct 5 2010, 15:08
|- - Maverick   Цитата(Koluchiy @ Oct 5 2010, 18:08) И ре...   Oct 5 2010, 16:56
- - m0use   Цитатаподелиться алгоритмом обработки изображения ...   Oct 5 2010, 16:14
- - m0use   ЦитатаНа константу или переменную? На переменную ...   Oct 5 2010, 17:39
|- - Maverick   Цитата(m0use @ Oct 5 2010, 20:18) На пере...   Oct 5 2010, 17:57
- - m0use   Офигеть! Maverick, спасибо, что поведал про та...   Oct 5 2010, 20:02
|- - Maverick   Цитата(m0use @ Oct 5 2010, 23:02) Офигеть...   Oct 6 2010, 06:26
|- - CaPpuCcino   Цитата(Maverick @ Oct 6 2010, 09:26) Перв...   Oct 6 2010, 06:51
|- - Maverick   Цитата(CaPpuCcino @ Oct 6 2010, 09:51) а ...   Oct 6 2010, 07:21
- - Koluchiy   Цитатачто делать? человек всегда становится перед ...   Oct 5 2010, 20:25
- - m0use   Цитатаесть еще такой вариант: использовать RAM с ш...   Oct 6 2010, 09:23
|- - CaPpuCcino   Цитата(m0use @ Oct 6 2010, 12:23) Многопо...   Oct 6 2010, 09:34
|- - vadimuzzz   Цитата(m0use @ Oct 6 2010, 16:23) Многопо...   Oct 6 2010, 09:49
|- - Maverick   Цитата(m0use @ Oct 6 2010, 12:23) У меня ...   Oct 6 2010, 13:34
- - m0use   ЦитатаПодумайте, может можно заменить операцию дел...   Oct 6 2010, 09:35
- - m0use   Цитатаможно дублировать контент (параллельная запи...   Oct 6 2010, 09:51
- - m0use   Цитатапоясните, плиз 2 пункт Неясно выразился, во...   Oct 7 2010, 14:48
|- - CaPpuCcino   Цитата(m0use @ Oct 7 2010, 17:48) Поэтому...   Oct 7 2010, 17:51
- - CaPpuCcino   Цитата(m0use @ Oct 8 2010, 00:30) Получае...   Oct 8 2010, 03:09


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.02319 секунд с 7
ELECTRONIX ©2004-2016