-
- У вас MMU есть, так что мешает повторить "хитрость" древнего самсунга? - aaarrr(09.08.2012 02:06)
- да можно проще. сделать некэшируемый мегабайт, создать в линкере секцию, и туда все DMA`шные буфера пихать. но что-то мне кажется что чистить кэш будет быстрее. - Mahagam(09.08.2012 12:08)
- Я об этом же подумал, что можно выделить две области на один и тот же участок памяти, одну кешируемую, а вторую нет. sbb(183 знак., 09.08.2012 11:54)
- А поподробнее? - =AlexD=(09.08.2012 09:06)
- Я не стал заморачиваться и делаю буферы в некешируемой странице. Всё равно данные для/из ДМА нужно или только читать, или только писать, а в таком случае нафига кеш зря дёргать? - =AlexD=(08.08.2012 20:47)
- от кэша таки есть плюс. например при формировании ethernet пакета данные сбрасываются в память целыми строками. что, как мне кажется, должно приводить к burst-записи в память при записи строки кэша. ну и при чтении - читанули mac-адрес, а в кэш Mahagam(146 знак., 08.08.2012 22:48)
- Хз, есть подозрение, что если прочитать заголовок в локальную структуру, то запросы на чтение сольются в один бурст (но это надо проверять), а данные осядут на регистрах и в кеше(стеке). Те же яйца, только без ручной возни со строками кеша. - =AlexD=(09.08.2012 09:05)
- ну а как тогда повторно прочитать заголовок? если его DMA изменит? читаться уже будет кэш. и именно эти закешированные строки нужно инвалидировать. в принципе, инвалидация довольно проста. - Mahagam(09.08.2012 11:56)
- Здрасьте, повторно считываешь данные в локальную структуру, сфига ли читаться будет кеш? Преимущество стековой страницы памяти в том, что она практически никогда не вытесняется из кеша, ибо проц постоянно работает со стеком. - =AlexD=(09.08.2012 12:04)
- я про считывание из закешированной области памяти, куда DMA кладёт принятое - Mahagam(09.08.2012 12:06)
- А я про использование некешируемых областей под ДМА. - =AlexD=(09.08.2012 12:08)
- я про считывание из закешированной области памяти, куда DMA кладёт принятое - Mahagam(09.08.2012 12:06)
- Здрасьте, повторно считываешь данные в локальную структуру, сфига ли читаться будет кеш? Преимущество стековой страницы памяти в том, что она практически никогда не вытесняется из кеша, ибо проц постоянно работает со стеком. - =AlexD=(09.08.2012 12:04)
- ну а как тогда повторно прочитать заголовок? если его DMA изменит? читаться уже будет кэш. и именно эти закешированные строки нужно инвалидировать. в принципе, инвалидация довольно проста. - Mahagam(09.08.2012 11:56)
- Хз, есть подозрение, что если прочитать заголовок в локальную структуру, то запросы на чтение сольются в один бурст (но это надо проверять), а данные осядут на регистрах и в кеше(стеке). Те же яйца, только без ручной возни со строками кеша. - =AlexD=(09.08.2012 09:05)
- от кэша таки есть плюс. например при формировании ethernet пакета данные сбрасываются в память целыми строками. что, как мне кажется, должно приводить к burst-записи в память при записи строки кэша. ну и при чтении - читанули mac-адрес, а в кэш Mahagam(146 знак., 08.08.2012 22:48)
- У вас MMU есть, так что мешает повторить "хитрость" древнего самсунга? - aaarrr(09.08.2012 02:06)