|
To RAM or no to RAM - вот в чём вопрос! |
|
|
|
Oct 5 2010, 08:52
|

Участник

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

|
Привет, ребят. Стою перед дилемой просто. Нужна обработка матриц - перемножение, сложение элементов. У меня такие мысли. С первого взгляда, достаточно удобно описывать матрицу как RAM, особенно когда нужно перемножать элементы (на аппаратных умножителях). Но в таком случае за один CLK можно работать только с одним элементом массива (считывать из памяти). Это большое но, потому что хочется максимально распараллелить обработку матрицы. То есть хочется одновременного доступа ко всем элементам - но (и опять же но) комбинаторной логике много, наверно, получается - скорость падает. Есть ли компромисс? Использовать небольшие блоки памяти? Подскажите, уважаемые коллеги! И вообще верны ли мои рассуждения?  .
--------------------
Усложнять - просто, упрощать - сложно.
|
|
|
|
|
 |
Ответов
|
Oct 7 2010, 21:30
|

Участник

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

|
Ребят, всем спасибо за советы и помощь. Я бы хотел теперь поделиться практическими результатами. Написал две реализации модуля, который принимает входное изображение, получает градиентные матрицы и перемножает их элементы. Одна реализация - конвеер с отводами, другая основана на использовании RAM. Входная матрица - 8x6. Речь прежде всего о скорости. И вот какие результаты: конвеер - порядка 220 МГц, RAM - порядка 120 МГц. При этом в первом случае для полного прохода ещё и тактов меньше требуется. Прикладываю RTL-схемы модулей для наглядности. Возможно, что я не оптимально реализовал вариант с RAM. Там больше логики, потому что весь процесс разбивается на этапы и окончание одного запускает другой. Тут, наверно, причина в том, что RAM имеет ограниченное число портов и нельзя считывать данные одновременно с процессом их записи. Поэтому приходится ждать. К чему я. Возникло предположение, что подход с конвеером здесь более эффективен. Получается, где поток данных "проходит" через кристалл, не задерживаясь, RAM не к месту? RAM оправдана там, где данные "задерживаются" для многократного вторичного использования? Или как  ?
Эскизы прикрепленных изображений
--------------------
Усложнять - просто, упрощать - сложно.
|
|
|
|
Сообщений в этой теме
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
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|