ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
96375
Evgeny_CD (05.08.2007 17:45, просмотров: 728)
Тонкие эффекты, связанные с DMA, в современных процессорах. Есть гибридный алгоритм. Часть на проце, часть на FPGA. Есть блок данных, которые надо утащить в FPGA. И есть блок, который надо притащить "взад" :) Поскольку с этими данными работает основной процессор, они должны быть в кешируемой области. Организован конвейер. Проц работает с одним блоком данных, пока второй "готовится" в его памяти. Как ораганизовать такой обмен? Процессорная пересылка - довольно хреновое занятие. * трата времени процессора. * засирание кеша. У нас в кеше будет отражены не только те данные, с которыми проц работает в данный момент, но и те, которыми обмениваются с FPGA. Единственный выход - DMA. В правильных процах, таких, как NXP (ранее Sharp) LH7952x, CF, MIPS вроде тоже, данные, с которыми работает DMA, не кешируются. Все получается очень красиво. Проц общается с кешом, а в это время DMA таскает данные по шине. В случае с многослойным шинным коммутатором внутри проца красота становится просто фантастической: проц живет в кеше и накристальной памяти, а в это время DMA работает с SDRAM. Никто никому не мешает! В CF можно перераспределять кеш между данными и командами, можно "морозить" кеш лайн (правда в MCF52xx есть штатный баг, связанный с заморозкой кеш лайна. Баг на уровне ядра, который признали фичей.). Компактный 16 битный код команд способствует эффективному использованию кеша. :) Резюме: 1. При наличии DMA и накристальной памяти можно достичь очень большой эффективности в реализации гибридных алгоритмов CPU + FPGA. 2. Процы без внешней DMA подлежат забаниванию в серьезных проектах как любительские камни, не предназначенные для серьезных девайсов. Черт бы побрал Atmel! Ну какого он не сделалал в AT91RM9200 нормального внешнего DMA и быстрой накристальной памяти (если ничего не путаю, к накристальной памяти AT91RM9200 обращается чуть ли не за 5 тактов). Был бы кристалл на все времена. А так... Эх... Либо это маркет такой хитрый. Чтобы не забыли в будущем перейти на новый кристалл. Чем дальше я изучаю новые творения NXP, теми больше вижу в них "маркетинговых ушей". Кеша нет, два канала DMA - ну так, чтобы случайно не сделал что-нибудь хорошее на дешевом камне (LPC28xx хорош, но хочешь его юзать - потраться на технологию BGA 0.5). И не подорвал устои планово-капиталистической экономики. LPC31xx - это ваще песня: чудный камень, которому забыли приделать внешнюю шину :)) Ей богу, советская система политинформаций смотрится как невинная забава на фоне таких "маркетинговых перлов". CF - гениальный кристалл. Тут добавить просто нечего.