Приветствую Вас Гость | RSS


Главная страница » Scorpion ZS 256 (проблемы с DRAM) - ZX-Форум » Регистрация » ВходПятница
2024-04-26
01:25:57
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
ZX-Форум » Hardware » Hardware » Scorpion ZS 256 (проблемы с DRAM) (Проблемы с DRAM при сбросе на scorpion и других клонах)
Scorpion ZS 256 (проблемы с DRAM)
deathsoftДата: Воскресенье, 2008-05-11, 22:18:06 | Сообщение # 1
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
В скорпионе реализована следующая "фича", память при сбросе не очищается, либо очищается частично (это используется для хранения настроек теневого монитора и быстрого сброса при подключенном smuc и т.п.).

Вот эта функция и стала источником проблем.

Принес ко мне плату Евгений Мучкин, со следующими симптомами, при резете на экране появлялся мусор, и каждый раз происходил полный сброс (в следствии порчи содержимого 8й страницы озу).

Проблема оказалась в следующем:
(по семе зеленого скорпиона)
Мультиплексоры DD15, DD16 управляют подключением процессора к памяти, мультиплексоры DD17, DD18 управляют подключением ВК(видеоконтроллера) к памяти. При этом в момент сброса шина адреса процессора переходит в Z состояние и на входе DD15, DD16 получаются неопределенные уровни, причем эти уровни могут меняться (когда процессор переходит в резет и когда он из него выходит). В этом нет ничего страшного - кроме одного случая - когда этот момент времени совпадает с приходом сигнала /RAS - при этом адреса должны быть стабильные.

Несоблюдение стабильности адресов при /RAS приводит к тому - что разрушается информация в произвольных ячейках памяти - сигнал /WE при этом не активен, на сколько сильно информация разрушается зависит от типа микросхем ОЗУ. Наименее подвержены помехам отечественные РУ7, наиболее LG GM71c256, средне сименс HYB41c256.

Также есть зависимость от типа процессора: на Z80H (NMOS) глюк менее заметен, на Z84C0010 глюк более заметен.

Глюк наиболее сильно проявляется в режиме TURBO, т.к. при этом при отрисовке бордюра ВК отключен от памяти.

Такая проблема присутствует во всех машинах - где процессор не отключается от доступа к памяти на момент сброса, но на большинство клонов - это никак не влияет - т.к. память чистится полностью процедурой из пзу при каждом сбросе.

Более того в скорпионе есть и вторая проблема - адресная шина памяти MAnn подключена на выходы 2х пар мультиплексоров управляемых противофазно, от сигнала H1M, при этом могут возникать моменты, когда обе пары мультиплексоров отключены от шины MAnn, и шина болтается в "воздухе". Правильнее было бы сделать переключение на мультиплексорах КП12 (как это делается с MA8).

Реализация сброса который сделан на плате - кривая, от кнопки формируется пачка импульсов - которая затем еще затягивается конденсатором. Мною был сделан одновибратор на 155АГ1 в штатном включении - при этом импульс сброса стал прямоугольной формы и он стал всего один, это существенно уменьшило проявление проблемы. А с памятью РУ7 и вообще от нее избавило. (При этом штатный электролит на плате ОТПАИВАЕТСЯ)

Возможные варианты лечения проблемы:
1. Горбатого - могила исправит (что есть - то есть, нет смысла что либо исправлять в кривой схеме) - это мой вариант.
2. Вариант от LVD - сделать подтяжку шины MA резисторами к 5В, и подключать процессор к шине MA только в те моменты - когда шина адреса стабильна.

В расследовании данного происшествия мне помогали: нолька и LVD, за что большое им спасибо.

Сообщение отредактировал deathsoft - Воскресенье, 2008-05-11, 23:00:08
 
lvdДата: Воскресенье, 2008-05-11, 23:09:01 | Сообщение # 2
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Quote (deathsoft)
Несоблюдение стабильности адресов при /RAS приводит к тому - что разрушается информация в произвольных ячейках памяти - сигнал /WE при этом не активен, на сколько сильно информация разрушается зависит от типа микросхем ОЗУ. Наименее подвержены помехам отечественные РУ7, наиболее LG GM71c256, средне сименс HYB41c256.

Это связано с тем, что чтение информации в ДРАМ (оно происходит сразу из всего ряда в момент опускания /RAS в 0) разрушающее, а восстановление (оно же рефреш) происходит в момент закрытия ряда, когда /RAS возвращается в 1.
Если не соблюдаются Tsu и Th для адресов ряда, то внутри чипа могут на короткое время выбираться (и соотв-но засираться) различные ряды.

Quote (deathsoft)
Более того в скорпионе есть и вторая проблема - адресная шина памяти MAnn подключена на выходы 2х пар мультиплексоров управляемых противофазно, от сигнала H1M, при этом могут возникать моменты, когда обе пары мультиплексоров отключены от шины MAnn, и шина болтается в "воздухе". Правильнее было бы сделать переключение на мультиплексорах КП12 (как это делается с MA8).

Это фигня - ибо промежуток болтания в воздухе короток (ну сколько - 10 нан?), за это время шина удерживает состояние за счёт ёмкостей. Также возможны конфликты, когда оба муха выдают разное, но если и то и другое происходит далеко от отрицательного фронта /RAS, то глубоко пох.

Quote (deathsoft)
2. Вариант от LVD - сделать подтяжку шины MA резисторами к 5В, и подключать процессор к шине MA только в те моменты - когда шина адреса стабильна.

Основная идея - чтобы в момент прихода /RAS шина MAx была в устойчивой 1 или 0.
Можно что сделать - довольно сильные пуллапы, чтобы успевали утягивать шину за время цикла, и отключать процессорные мухи, когда на процессоре ресет. Сам ресет сделать синхронным, чтобы от момента начала ресета (который не должен приходиться на момент спада /RAS) до момента спада /RAS проходило достаточное время для утягивания MAx в единички пуллапами.


Многого нет здесь: http://lvd.nedopc.com
 
deathsoftДата: Воскресенье, 2008-05-11, 23:31:14 | Сообщение # 3
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Quote (lvd)
Сам ресет сделать синхронным, чтобы от момента начала ресета (который не должен приходиться на момент спада /RAS) до момента спада /RAS проходило достаточное время для утягивания MAx в единички пуллапами.

Сигнал /RAS - это по сути - клок процессора - генерируется постоянно с частотой 3.5МГц
 
deathsoftДата: Воскресенье, 2008-05-11, 23:33:51 | Сообщение # 4
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
То что проблема столько лет не давала о себе знать - говорит лишь о том - что при хорошо "настроеной" плате - проблема не проявляется (имеется в виду индивидуальный подбор процессора и памяти). Видимо этим в скорпионе постоянно и занимались.
 
Black_CatДата: Понедельник, 2008-05-12, 00:03:05 | Сообщение # 5
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
Quote (deathsoft)
проблема не проявляется (имеется в виду индивидуальный подбор процессора и памяти). Видимо этим в скорпионе постоянно и занимались.

smile ага, а кто-то говорил что КАЙ и Скорп одно и то-же smile


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
 
lvdДата: Понедельник, 2008-05-12, 00:06:10 | Сообщение # 6
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Репутация: 13
Статус: Offline
Quote (Black_Cat)
ага, а кто-то говорил что КАЙ и Скорп одно и то-же

В части цепи сброса и провисания адресов в момент сброса - конечно же одно и то же.


Многого нет здесь: http://lvd.nedopc.com
 
KOEДата: Понедельник, 2008-05-12, 01:10:42 | Сообщение # 7
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
БУГАГА!!!
А в пентагоне такой проблемы вовсе нет, ибо по дефолту к памяти подключен ВК, а шина адреса процессора подключается к ней только во время циклов чтения из памяти и извлечения опкодов biggrin
Т.е. не происходит холостых чтений из памяти, когда процессору считанные данные не нужны, как в скорпионе.


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"


Сообщение отредактировал KOE - Понедельник, 2008-05-12, 09:01:26
 
Black_CatДата: Понедельник, 2008-05-12, 01:17:02 | Сообщение # 8
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
ты хочешь сказать что в КАЕ есть такие-же "настройки" памяти? чёт не слышал о таком.. , а вот про Скорп - эт всем известно о его критичности к памяти
Quote (deathsoft)
При этом в момент сброса шина адреса процессора переходит в Z состояние и на входе DD15, DD16 получаются неопределенные уровни, причем эти уровни могут меняться (когда процессор переходит в резет и когда он из него выходит). В этом нет ничего страшного - кроме одного случая - когда этот момент времени совпадает с приходом сигнала /RAS - при этом адреса должны быть стабильные.

чесно говоря мне видится более простая и прозаическая причина - плохие шины питания и как следствие грязная шина адреса (данные утянуты в единицу и им всё равно), которая и гадит в ОЗУ, а процессор тут вааще не при делах..
Quote (deathsoft)
Реализация сброса который сделан на плате - кривая, от кнопки формируется пачка импульсов - которая затем еще затягивается конденсатором.

ну и что? при первом замыкании кондёр разряжается до нуля, и до следующего дребезжания не успевает зарядиться ни до какого уровня и опять разряжается в нуль. И так несколько раз. Проц при этом сидит в глухом ресете и понятия не имеет о каком-то дребезге. Дык что вешать под этим предлогом АГ3 на сброс - эт из области анекдотов. Если вам так уж мешает дребезг - влепите формирователь на паре ТЛ2, но результат от этого не изменится.

Соответственно и методы борьбы должны быть другими - пропаиваешь шину питания толстым проводом, или бросаешь лучи питания толстым изолированным проводом в критичные участки прям от разъёма питания и ко всему навешиваешь жирную керамику. Как только шина станет чистой - проблема отпадёт сама собой.


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


Сообщение отредактировал Black_Cat - Понедельник, 2008-05-12, 03:26:11
 
KOEДата: Понедельник, 2008-05-12, 08:49:45 | Сообщение # 9
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Quote (Black_Cat)
ты хочешь сказать что в КАЕ есть такие-же "настройки" памяти?

Она также работает. Там производятся 'холостые' операции чтения из памяти, и если нажать reset, то они будут производится с висящей в воздухе шиной адреса.

Quote (Black_Cat)
плохие шины питания и как следствие грязная шина адреса (данные утянуты в единицу и им всё равно), которая и гадит в ОЗУ, а процессор тут вааще не при делах..

Во-первых, шины питания здесь ни при чем (механизм засирания описал лвд). При регенерации памяти при чтении и записи ряда должен быть один и тот же адрес. А если шина адреса процессора при сбросе висит в воздухе - там может быть все что угодно.
Во-вторых, шины питания в скорпионе сделаны вполне грамотно, не хуже, чем в KAY (может даже и лучше).

А теперь о том, как вылечить скорпион. Если я еще не основательно подзабыл его схему, то сигнал H1M, который переключает мультиплексоры между памятью и ВК, формируется в ПЛИС. Не надо никаких подтяжек, не надо резетов на АГxx (ваще бред и типичное говностроительство, типа у нас сарай разваливается, а мы ему подпорочку присобачим, до первого урагана (читай изменения фазы луны) протянет), просто делаем прошивку ПЛИС таким образом, чтобы ША процессора подключалась к памяти только в циклах чтения из памяти, примерно как в Пентагоне. Здесь есть один критичный момент: H1M, идущий из ПЛИС, используется еще для формирования строчного синхроимпульса. Поэтому от 2-й ноги DD31 надо оторвать H1M- и подать туда проинвертированный H1, который также можно сформировать в ПЛИС.


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"


Сообщение отредактировал KOE - Понедельник, 2008-05-12, 08:58:10
 
Black_CatДата: Понедельник, 2008-05-12, 09:45:27 | Сообщение # 10
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
Quote (KOE)
Она также работает.

то, что она устроена подобно - эт никто и не спорит - эт очевидно, но вот чтоб приходилось в КАЕ шаманить подбирая память - такого я не слышал, а значит есть нюансы
Quote (KOE)
Во-первых, шины питания здесь ни при чем (механизм засирания описал лвд). При регенерации памяти при чтении и записи ряда должен быть один и тот же адрес. А если шина адреса процессора при сбросе висит в воздухе - там может быть все что угодно.

ЛВД считает что на шину гадит проц при дребезге ресета, но ресет даже при такой убогой схеме - дребезжать не должен, а вот зашумлённая адресная шина вполне может приводить к такому эффекту, пока проц в ресете. К тому же после ресета на адресе должны быть все нули, т.е. даже если дребезг есть, то исключены любые комбинации кроме всех единиц в z-cостоянии и всех нулей сразу после ресета, т.е. куда попало гадить оно не может в этом случае. А вот с зашумлённой шиной гадить оно может куда попало. Да и шум на шине будет зависеть от типа памяти, т.е. от её потребления что может объяснять разное поведение с разной памятью


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


Сообщение отредактировал Black_Cat - Понедельник, 2008-05-12, 10:01:35
 
KOEДата: Понедельник, 2008-05-12, 09:54:58 | Сообщение # 11
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Quote (Black_Cat)
ЛВД считает что на шину гадит проц при дребезге ресета

По определению не может, т.к. при резете WR, RD, MREQ неактивны, а ШД подтянута к 1.


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"


Сообщение отредактировал KOE - Понедельник, 2008-05-12, 10:01:20
 
Black_CatДата: Понедельник, 2008-05-12, 10:04:03 | Сообщение # 12
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
Quote (KOE)
По определению не может, т.к. при резете WR, RD, MREQ неактивны, а ШД подтянута к 1.

я не про данные, он как я понял считает что проц гадит как раз на адрес


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
 
KOEДата: Понедельник, 2008-05-12, 10:05:47 | Сообщение # 13
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Репутация: 5
Статус: Offline
Quote (Black_Cat)
я не про данные, он как я понял считает что проц гадит как раз на адрес

На адрес он не гадит, он просто переводит ША в Z-состояние. И любая помеха может что-угодно нагадить. Поэтому не надо подключать память к процу, когда ША висит в воздухе.


Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
 
Black_CatДата: Понедельник, 2008-05-12, 11:16:05 | Сообщение # 14
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
Quote (KOE)
Поэтому не надо подключать память к процу, когда ША висит в воздухе.

в идеале - да, с этим никто не спорит, но для этого ж придётся перепахивать схему..


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
 
deathsoftДата: Понедельник, 2008-05-12, 11:24:24 | Сообщение # 15
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Quote (KOE)
БУГАГА!!! А в пентагоне такой проблемы вовсе нет, ибо по дефолту к памяти подключен ВК, а шина адреса процессора подключается к ней только во время циклов чтения из памяти и извлечения опкодов biggrin

Проблема есть везде т.к. /mreq приходит асинхронно относительно /ras и когда процессор выходит из резета, то у тебя /mreq может придтись как раз на низкий уровень /ras и мультиплексор с адресами процессора подключится к памяти и точно также произведет сбой из за изменения адреса в момент /ras = 0.
 
ZX-Форум » Hardware » Hardware » Scorpion ZS 256 (проблемы с DRAM) (Проблемы с DRAM при сбросе на scorpion и других клонах)
  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:

the DLCorp © 2006