User Tag List

Показано с 1 по 10 из 74

Тема: Распределение банков памяти

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Потому, что счётчики рисования растра начинают работать сразу по включению питания.
    Счетчики же изменяются и память читается по идее только во время вывода растра? А до его начала в кадре 14335 тактов (это 4мс), за это время ОЗУ при заданном максимальном периоде регенерации 2мс должно начать утекать .

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,103
    Спасибо Благодарностей отдано 
    1,336
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    периоде регенерации 2мс должно начать утекать
    Возможно, 2мс параноидально заниженное число?

    - - - Добавлено - - -

    Цитата Сообщение от omercury Посмотреть сообщение
    Пока не нажмёт Enter, ровно столько же, как если б ничего не писал.
    Ты не смог ответить на мой вопрос конкретным числом, в этом отличие НЕявного процесса.

  4. #3

    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Память SDRAM Micron 48LC16M16A2 7.5nS Период регенерации 64mS

    На столе 2 платы, обе не ПЛИС, на одной спек-128 (хост), на верхней внешняя видеокарта.
    Включаю питание видеокарты, заливаю прошивку, потом включаю кнопкой хост, появляется изображение.
    Выключаю хост, больше записи в видеопамять нет.
    Отключаю питание видеокарточки, лезу выдирать из розетки монитор (чуть не уронил).
    Отключаю все провода от плат, включая USB-Blaster, замыкаю пинцетом контакты питания - разряжаю конденсаторы.
    Снова подключаю провода сначала к хосту, потом USB-Blaster, лезу под стол втыкать в розетку монитор.
    Левой рукой включаю тумблером питание видео и заливаю прошивку. Появляется изображение.
    Данные, конечно, деградировали, но не так, чтобы совсем.
    С момента выключения тумблера до заливки прошивки прошло 48 секунд...

    Мультик
    https://cloud.mail.ru/public/3TEb/5etMC9ntk

    - - - Добавлено - - -

    Цитата Сообщение от Reobne Посмотреть сообщение
    Ты не смог ответить на мой вопрос конкретным числом, в этом отличие НЕявного процесса.
    Такт переменной FRAMES 20mS - это в достаточной мере явное значение?
    Разумеется, пока не отключены прерывания.

  5. #4

    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Счетчики же изменяются и память читается по идее только во время вывода растра?
    Да нет, тикают постоянно, никто не будет усложнять схему и блокировать чтение на время бордера и обратного хода луча.
    Чтение происходит с периодом 1/(7МГц/8)=1,14 микросекунды (на самом деле 2 чтения, но по одинаковому младшему адресу) на "фирме" даже чуть чаще.
    Полное обновление памяти, то есть чтение 128 последовательных адресов, произойдёт за 32 строки или 32*64uS=2,048 милисекунды...

    - - - Добавлено - - -

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Однако, старшую память попортить реально,
    Разумеется реально.
    И для этого вовсе не обязательно использовать системный разъём, достаточно максимально часто сбрасывать R в ноль и верхняя часть каждых 128 байтов протухнет.
    А лучше в R писать не 0, а какое-либо определённое число, от которого счётчик никогда не досчитает до 128, и тогда мы будем точно знать, какие именно ячейки мы целенаправленно портим.

  6. #5

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Да нет, тикают постоянно, никто не будет усложнять схему и блокировать чтение на время бордера и обратного хода луча.
    Насчет счетчиков не знаю, а память читается ULA-й строго во время вывода растра, иначе память бы тормозила и во время до начала вывода растра и после вывода растра. А, я так понимаю, память рефрешится строго во время её чтения.

    - - - Добавлено - - -

    Цитата Сообщение от omercury Посмотреть сообщение
    А лучше в R писать не 0, а какое-либо определённое число, от которого счётчик никогда не досчитает до 128, и тогда мы будем точно знать, какие именно ячейки мы целенаправленно портим.
    1) Счетчик с нуля никогда не досчитает до 128, ибо старший бит регистра R не участвует в инкременте.
    2) В остальном не понял. Почему если писать в регистр R 0, мы не будем знать, какие ячейки мы портим? Насколько я понимаю, при записи в R нуля мы не будем портить ячейки с нулем в младших 7 битах адреса, остальные будут портиться со временем.

  7. #6

    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    1) Счетчик с нуля никогда не досчитает до 128, ибо старший бит регистра R не участвует в инкременте.
    Он не участвует в рефреше.

    Цитата Сообщение от weiv Посмотреть сообщение
    Почему если писать в регистр R 0, мы не будем знать, какие ячейки мы портим?
    Потому, что по каждому циклу М1 (то есть по каждой инструкции МП) происходит инкремент регистра R, до следующего его сброса он что-нибудь, да насчитает.

    Цитата Сообщение от weiv Посмотреть сообщение
    Насколько я понимаю, при записи в R нуля мы не будем портить ячейки с нулем в младших 7 битах адреса, остальные будут портиться со временем.
    В младше ОДНОМ бите. Есть вероятность, что первый же М1 перещёлкнет R в 0x01 и рефрешь нулевого адреса мы пропустим.
    При записи, например, 0x01 мы будем точно знать, что нулевой адрес мы однозначно пропустили.

    - - - Добавлено - - -

    Цитата Сообщение от weiv Посмотреть сообщение
    Вот только хотел спросить у хардварщиков - заряженный конденсатор в памяти это единица в бите или ноль?
    По-логике за счёт утечек должно быть "1".
    А что мешает заполнить 0x55 или 0xAA ?

  8. #7

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Он не участвует в рефреше.
    И в инкременте тоже не участвует. Меняется только командой LD R,A, далее остается неизменным, несмотря на автоинкремент, что дает возможность хранить в нем однобитовую информацию.

    Потому, что по каждому циклу М1 (то есть по каждой инструкции МП) происходит инкремент регистра R, до следующего его сброса он что-нибудь, да насчитает.
    Это понятно, поэтому сбрасывать нужно постоянно, тогда он будет меняться в пределах 0-1-2 в цикле, как у меня.

    В младше ОДНОМ бите. Есть вероятность, что первый же М1 перещёлкнет R в 0x01 и рефрешь нулевого адреса мы пропустим.
    При записи, например, 0x01 мы будем точно знать, что нулевой адрес мы однозначно пропустили.
    Насчет младшего одного бита не понял, а насчет рефреша - ну пропустим и пропустим, в принципе, значение R вообще можно задавать любое, лишь бы одно и то же.

    По-логике за счёт утечек должно быть "1".
    ?? То есть заряженный конденсатор означает 0, а разряженный 1?

    А что мешает заполнить 0x55 или 0xAA ?
    Ничто не мешает. Я планирую тестить на нескольких значениях, задаваемых из бейсика.

    - - - Добавлено - - -

    Насчет ULA - да, она читает по 4 байта подряд (но только во время вывода растра), и да, она изначально представляет собой заготовку на N элементов, в которые нужно уложиться, так что экономить можно только на изначальном объеме микросхемы, экономить на каждом транзисторе практического смысла не имело.
    Последний раз редактировалось Spectramine; 23.06.2019 в 17:59.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 3
    Последнее: 03.12.2018, 17:32
  2. Распределение памяти под CP/M
    от Арнольд в разделе Для начинающих
    Ответов: 5
    Последнее: 31.08.2012, 12:11
  3. Мысли о памяти
    от SfS в разделе Память
    Ответов: 28
    Последнее: 16.12.2006, 10:49
  4. Ответов: 10
    Последнее: 18.10.2006, 15:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •