Цитата(gosha @ Jan 16 2009, 07:50)

Существует работающий контроллер sdram в проекте.
Банк закрывается precharge только, при обращении к этому банку и не совпадении row или необходимости регенерации.
В этом случае, логика сравнения nrow в N_bank, N_rank синтезируется в схему, работающую < 80MHz (что не слишком удовлетворяет).
Насколько и каким методом/замером/дополнительной_логикой_анализа_в_плис можно определить +/- удерживания открытыми всех банков до не совпадения n_row/регенерации?
Вопрос в том какое время держать страницы открытими? Или в оптимизации схемы? Логику сравнения, ИМХО, никак не выкинуть.
Я недавно использовал MPC83xx и там в контроллере SDRAM был любопытный регистр - время удержания банка открытым - задавалось число в тактах. Для меня такой параметр был новым и я провел тесты - пропускная способность памяти в зависимости от этого параметра. Сразу оговорюсь - тесты были простейшие - линейное последовательное чтение/запись массива. Так вот, с ростом времени "открытости банка" скорость тоже росла, почти линейно, но в небольших пределах - +20-25% и рост остановился при достижении периода рефреша. Не знаю как будет при рандомном доступе - скорее всего будет зависеть от задачи - так что, возможно, настройка "времени жизни" банка не совсем уж бесполезна.