Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите разобраться с выделением внутренней памяти
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
demi
Есть массив данных объемом 390Кслов (32 разряда). Необходимо разместить этот массив во внутренней памяти TS-201 (24 Мбит). Один банк память вмещает 128Кслов (всего банков 6). В данный момент я могу разбить этот массив на 3-4 массива по 128Кслов. Но думаю, это не лучшее решение задачи. Вопрос такой: можно ли создать один сегмент памяти (объемом под 400Кслов), но разместить его в нескольких банках памяти? Или есть другие способы размещения больших объемов данны?
SergeyX
Цитата(demi @ Feb 13 2007, 13:13) *
Есть массив данных объемом 390Кслов (32 разряда). Необходимо разместить этот массив во внутренней памяти TS-201 (24 Мбит). Один банк память вмещает 128Кслов (всего банков 6). В данный момент я могу разбить этот массив на 3-4 массива по 128Кслов. Но думаю, это не лучшее решение задачи. Вопрос такой: можно ли создать один сегмент памяти (объемом под 400Кслов), но разместить его в нескольких банках памяти? Или есть другие способы размещения больших объемов данны?

В TS-201 разделение на банки реализовано на аппаратном уровне + соответсвующее подключение к шинам данным/адресса. Так что в любом случае Вам потребуется размещать массив в нескольких банках. Особенность этого процессора в том что за один такт вы сможете выполнить обращение только к 2-м банкам. И тут все зависит от того на сколько это критично для Ваших алгоритмов.
ЗЫ: Очень часто приходится наоборот перераспределять данные в разные банки, чтобы обеспечить доступ к ним в одной команде.
Если расскажите что за алгоритм Вам требуется реализовать попробую дать более конкреные советы.
demi
Цитата(SergeyX @ Feb 13 2007, 14:35) *
Особенность этого процессора в том что за один такт вы сможете выполнить обращение только к 2-м банкам. И тут все зависит от того на сколько это критично для Ваших алгоритмов.
ЗЫ: Очень часто приходится наоборот перераспределять данные в разные банки, чтобы обеспечить доступ к ним в одной команде.
Если расскажите что за алгоритм Вам требуется реализовать попробую дать более конкреные советы.

полный алгоритм обработки таков:
1. Получаем даные через линки (макс. объем 400Кслов). Данные комплексные smile.gif . Массив С размера (АхВ).
2. Делаем перемножение (комплексное) А(В)=С*Х(В) с суммированием по размерности А.
3. Результат передаем по линкам.
Вот такая обработка biggrin.gif
В данный момент работаю в симуляторе. Передачу по линкам еще не начинал. Обработку написал на С, но с объемом данных меньшим (в реальности будет больший поток), т.к. засел с банками памяти. Под входной массив я выделить смог 64К (1/2 банка). Обработка занимает кучу тактов, и по этому, оптимизировать буду под ассемблером (когда изучу biggrin.gif ).
Вопросы у меня следующие:
1. За один так я могу обратиться к двум банкам (это которые по 128К или по 64К). Тогда если я хочу выбрать 2 элемента массива и инструкцию, то я должен сделать кэш с инструкциями?
2. Если разместить данные в разных сегментах памяти, то смогу ли я обратиться к двум сегмантам за 1 такт?

Буду признателен, если Вы сможете мне объяснить часть моих вопрос biggrin.gif
SergeyX
Цитата
Обработка занимает кучу тактов, и по этому, оптимизировать буду под ассемблером (когда изучу biggrin.gif ).

если будете программированить под TS201, то лучше сразу начинайти изучать ассемблер...от этого процессора можно добиться производительности только на ассемблере. Компилятор С исопльзует аппаратные возможности TS201 толькона половину...у них где то в документации даже описывалась как и какие конструкции С реализуются на asm. Когда прочитаtnt это, то сразу поймете, что надо писать на asm.
Цитата
1. За один так я могу обратиться к двум банкам (это которые по 128К или по 64К). Тогда если я хочу выбрать 2 элемента массива и инструкцию, то я должен сделать кэш с инструкциями?

в действительности к блоку памяти подведено 4 шины. Одна используется SOC контроллером, одна - отведена для инструкций, и две под данные. Так что о инструкциях вам беспокоиться ненадо.
Цитата
2. Если разместить данные в разных сегментах памяти, то смогу ли я обратиться к двум сегмантам за 1 такт?

Да сможете...но у ассемблера есть небольшие ограничения на этот счет. И с ними можно жить.
ЗЫ: Когда будете оптимизировать алгоритм на asm может даже придете к тому, что это и не вовсе потребуется wink.gif.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.