С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Память SDRAM Micron 48LC16M16A2 7.5nS Период регенерации 64mS
На столе 2 платы, обе не ПЛИС, на одной спек-128 (хост), на верхней внешняя видеокарта.
Включаю питание видеокарты, заливаю прошивку, потом включаю кнопкой хост, появляется изображение.
Выключаю хост, больше записи в видеопамять нет.
Отключаю питание видеокарточки, лезу выдирать из розетки монитор (чуть не уронил).
Отключаю все провода от плат, включая USB-Blaster, замыкаю пинцетом контакты питания - разряжаю конденсаторы.
Снова подключаю провода сначала к хосту, потом USB-Blaster, лезу под стол втыкать в розетку монитор.
Левой рукой включаю тумблером питание видео и заливаю прошивку. Появляется изображение.
Данные, конечно, деградировали, но не так, чтобы совсем.
С момента выключения тумблера до заливки прошивки прошло 48 секунд...
Мультик
https://cloud.mail.ru/public/3TEb/5etMC9ntk
- - - Добавлено - - -
Такт переменной FRAMES 20mS - это в достаточной мере явное значение?
Разумеется, пока не отключены прерывания.
Да нет, тикают постоянно, никто не будет усложнять схему и блокировать чтение на время бордера и обратного хода луча.
Чтение происходит с периодом 1/(7МГц/8)=1,14 микросекунды (на самом деле 2 чтения, но по одинаковому младшему адресу) на "фирме" даже чуть чаще.
Полное обновление памяти, то есть чтение 128 последовательных адресов, произойдёт за 32 строки или 32*64uS=2,048 милисекунды...
- - - Добавлено - - -
Разумеется реально.
И для этого вовсе не обязательно использовать системный разъём, достаточно максимально часто сбрасывать R в ноль и верхняя часть каждых 128 байтов протухнет.
А лучше в R писать не 0, а какое-либо определённое число, от которого счётчик никогда не досчитает до 128, и тогда мы будем точно знать, какие именно ячейки мы целенаправленно портим.
Насчет счетчиков не знаю, а память читается ULA-й строго во время вывода растра, иначе память бы тормозила и во время до начала вывода растра и после вывода растра. А, я так понимаю, память рефрешится строго во время её чтения.
- - - Добавлено - - -
1) Счетчик с нуля никогда не досчитает до 128, ибо старший бит регистра R не участвует в инкременте.
2) В остальном не понял. Почему если писать в регистр R 0, мы не будем знать, какие ячейки мы портим? Насколько я понимаю, при записи в R нуля мы не будем портить ячейки с нулем в младших 7 битах адреса, остальные будут портиться со временем.
Он не участвует в рефреше.
Потому, что по каждому циклу М1 (то есть по каждой инструкции МП) происходит инкремент регистра R, до следующего его сброса он что-нибудь, да насчитает.
В младше ОДНОМ бите. Есть вероятность, что первый же М1 перещёлкнет R в 0x01 и рефрешь нулевого адреса мы пропустим.
При записи, например, 0x01 мы будем точно знать, что нулевой адрес мы однозначно пропустили.
- - - Добавлено - - -
По-логике за счёт утечек должно быть "1".
А что мешает заполнить 0x55 или 0xAA ?
И в инкременте тоже не участвует. Меняется только командой LD R,A, далее остается неизменным, несмотря на автоинкремент, что дает возможность хранить в нем однобитовую информацию.
Это понятно, поэтому сбрасывать нужно постоянно, тогда он будет меняться в пределах 0-1-2 в цикле, как у меня.Потому, что по каждому циклу М1 (то есть по каждой инструкции МП) происходит инкремент регистра R, до следующего его сброса он что-нибудь, да насчитает.
Насчет младшего одного бита не понял, а насчет рефреша - ну пропустим и пропустим, в принципе, значение R вообще можно задавать любое, лишь бы одно и то же.В младше ОДНОМ бите. Есть вероятность, что первый же М1 перещёлкнет R в 0x01 и рефрешь нулевого адреса мы пропустим.
При записи, например, 0x01 мы будем точно знать, что нулевой адрес мы однозначно пропустили.
?? То есть заряженный конденсатор означает 0, а разряженный 1?По-логике за счёт утечек должно быть "1".
Ничто не мешает. Я планирую тестить на нескольких значениях, задаваемых из бейсика.А что мешает заполнить 0x55 или 0xAA ?
- - - Добавлено - - -
Насчет ULA - да, она читает по 4 байта подряд (но только во время вывода растра), и да, она изначально представляет собой заготовку на N элементов, в которые нужно уложиться, так что экономить можно только на изначальном объеме микросхемы, экономить на каждом транзисторе практического смысла не имело.
Последний раз редактировалось Spectramine; 23.06.2019 в 17:59.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)