PDA

Просмотр полной версии : Диспетчер памяти в KAY-1024...



SoftFelix
28.08.2010, 12:29
http://zx.pk.ru/picture.php?albumid=36&pictureid=260

Вопрос к понимающим. Как я думаю, эта схема работает исключительно на DRAM, которая может регенерировать сама себя внутренними счётчиками. Или я ошибаюсь? Вопрос, собственно, о расширении памяти с 1МБ до 4МБ. Это так, на перспективу. :v2_rolley Как я понимаю, для получения нового мультиплексированного адреса MA10, потребуется подключить дополнительную КП2 (напаять поверх D9) согласно половинке Сх D9 и подавать на С0/С2 выборку 2/4МБ c доп.портов. И в основной схеме больше _ничего_ резать не придётся? Просто есть у меня некоторое количество замечательных симмов от Samsung'a на 4МБ и я очень привык и проникся памятью Пентагон-1024 (5&6&7 биты #7FFD). Вот и хотелось бы задействовать биты 5 и 6 #7FFD без дополнительной коммутации для 2х/4x мегабайт.

spensor
28.08.2010, 12:47
Как я понимаю, для получения нового мультиплексированного адреса MA10, потребуется подключить дополнительную КП2 (напаять поверх D9) согласно половинке Сх D9 и подавать на С0/С2 выборку 2/4МБ c доп.портов. И в основной схеме больше _ничего_ резать не придётся?
Увы, прийдется. Необходим еще переодический сигнал для регенирации памяти, по аналогии с ВК идущего на 5 вывод D9. Причем его надо будет использовать для формирования MA9, а уж для МА10 заводить GND. Вот собственно из-за такой болезни и не было на ZX схем под произвольный размер SIMM.

SoftFelix
28.08.2010, 13:11
Необходим еще переодический сигнал для регенирации памяти, по аналогии с ВК идущего на 5 вывод D9. Причем его надо будет использовать для формирования MA9, а уж для МА10 заводить GND.
Т.е. я правильно понимаю, что новый МА9 будет аналогом по схеме нынешнего МА8, на МА8 будет приходить тот же БК (или другой сигнал?), на МА9 другой сигнал со счётчикров (а можно предположить _какой_?), а МА10 формируется по нынешней схеме МА9? А почему для нынешнего сигнала МА9 не используется сигнал регенерации?

spensor
28.08.2010, 14:42
Т.е. я правильно понимаю, что новый МА9 будет аналогом по схеме нынешнего МА8, на МА8 будет приходить тот же БК (или другой сигнал?), на МА9 другой сигнал со счётчиков (а можно предположить _какой_?),...
MA9 будет построен по аналогии с MA8. Если внимательно присмотритесь к комбинации сигналов на входах мультплексора то увидите следующее:

*A14
CLKn
*A15
1

*A16
0
*A17
0

В общем MA сигналы образуются из адреса CPU (регистра банка ОЗУ) и адреса видеоконтроллера. Но все MA короме последнего должны содержать "мигающий" сигнал. Честно говоря какой логике подчиняется выбор "мигающего" сигнала для адресов видеоконтроллера я не знаю. При расширении с 48К до 128-256К выполнялась рекомбинация сигналов H0-H7, V0-V7 дальше логику понять не смог.

...а МА10 формируется по нынешней схеме МА9? А почему для нынешнего сигнала МА9 не используется сигнал регенерации?
MA10 будет содержать сигналы:

*A18
0
*A19
0

А вот в MA9 необходимо внести "мигающий" сигнал, возможно перекомбинировать и MA8. Для старшего MA сигнал рефреша не требуется, в микросхемах DRAM начиная с 41256 банки памяти стороятся квадрами, и рефрешатся по 4 за один раз. В "Микропроцессорных средствах и системах" было описание РУ7, там этот вопрос освещен подробно.

SoftFelix
29.08.2010, 11:50
spensor, т.е., если подытожить, то введение МА10 будет выглятеть так:

D9:

MA8:
A14
CLKn1
A15
1

MA9:
A16
CLKn2
A17
1

D9':

MA10:
A18
0
A19
0

???

И остаётся только вопрос в выборе сигналов CLKn1 и CLKn2?

Сигнал ВК - это, как я понимаю, сигнал с частотой около 50Гц?

А не придётся ли что-нибудь менять в мультиплексорах D15...D19?
http://zx.pk.ru/picture.php?albumid=36&pictureid=261

---------- Post added at 12:50 ---------- Previous post was at 12:46 ----------


Для старшего MA сигнал рефреша не требуется, в микросхемах DRAM начиная с 41256 банки памяти стороятся квадрами, и рефрешатся по 4 за один раз. В "Микропроцессорных средствах и системах" было описание РУ7, там этот вопрос освещен подробно.
А где эту статью можно почитать?

spensor
29.08.2010, 13:38
Немного поразмыслив понял что "автор (Nemo) тем уже не прост, что задал этот нам вопрос". Для генерации "мигающего" сигнала по линии MA8 используется сигнал гасящего кадрового импульса (BK). Фактически это означает то, что эта схема обеспечивает и регенирацию и для схемы 1024К и для схемы 256К, тоесть в отличии от других схем расширения тут можно использовать память двух размерностей. Чтобы понять принцип лучше почитать статью М.Бун "Spectrum - Совместимый Компьютер" (журнал "Радио" 1995 №6 (с.20-21) - Формирование Изображения на экране монитора). Кстати, самая полезная часть во всем цикле. В двух словах смысл вот в чем. В момент вывода изображения на экран компьютера адресные счетчики видеоконтроллера должны выдавать адрес нужного байта видеопамяти в полной памяти компьютера. Если скажем взять память в 4Мб, то адрес будет:

0000 s10n nnnn nnnn nnnn
где n-произвольный байт в области хранения пиксел/атрибутов, s-состояние бита D3 порта #7FFD. n - в пределах построения кадра величина переменная, и именно эти адресные биты используются в качестве "мигающих" сигналов. В терминологии сигналов принятых для клонов "Ленинграда" (Л1, Л2, Scorpion, Kay и др.) адрес области памяти образуется сигналами:
для области пикселов

0000 s10V7 V6V2V1V0 V5V4V3H7 H6H5H4H3

для области атрибутов

0000 s101 10V7V6 V5V4V3H7 H6H5H4H3

Совершенно ясно, что если MA (Multiplexed Adress) формировать по принципу смешивания H3+V0/V6 и аналогично, то мы получим только 8 мультиплексированных мигающих сигналов, достаточных для регенирации только 64К ОЗУ. Nemo нашел еще один "мигающий" сигнал BK. В пределах вывода изображения он как и положенно находится в состоянии "0", а когда изображение не выводится и видеоконтроллер производит холостые обращения к видеопамяти он установлен в "1".
Вроде бы тупик и получить еще "мигающие" сигналы невозможно. Но есть способ, которым пользуются доработчики уже давно. Самих знакопеременных в пределах кадра сигналов (n) можно насчитать 13, плюс 14 сигнал BK. Более чем достаточно чтобы расширить память, в привычной ZX архитектуре до 256Мб. Но это так, лирика. Правда для этого надо капитально перелопатить мультиплексоры видеоадреса, и получить систему с жестко определенным объемом ОЗУ...
Более правильно применить режим "CAS before RAS", появившийся в РУ7 (41256) и при котором работает внутренний счетчик регенирации, а обо всех заморочках с поиском "мигающих" сигналов можно забыть и получить систему с произвольным размером ОЗУ от 256К и до окраин. Но увы никто из разработчиков материнок в этом направлении не копал, и мы "маємо те, що маємо".

---------- Post added at 13:38 ---------- Previous post was at 13:23 ----------


если подытожить, то введение МА10 будет выглятеть так
Не совсем так, но надеюсь вышеприведенный опус немного прояснил ситуацию. В общем там вместо 1 будут 0. Откуда 1 взялась в MA8 в схеме Nemo не совсем проникся, но похоже это перестановка сигнала s в формирование сигнала MA7 и возможно еще какая-то рекомбинация.

А где эту статью можно почитать?
Точный номер журнала не скажу, как и не скажу сканировали ли его. Но форумчанин KALDYH занимался этом делом и приуспел в нем: хттп://zx.pk.ru/showthread.php?t=9592, и тут: хттп://rutracker.org/forum/viewtopic.php?t=2985798. А также вроде как другие сканы тут: хттп://publ.lib.ru/ARCHIVES/M/''Mikroprocessornye_sredstva_i_sistemy''/_''MPSS''.html Но конкретный номер искать вам, на последних листах журнала, по памяти 1988-1990, но могу и ошибаться. Или если английский не смущает, можно просто поднять даташит на 41256.

---------- Post added at 13:38 ---------- Previous post was at 13:38 ----------


если подытожить, то введение МА10 будет выглятеть так
Не совсем так, но надеюсь вышеприведенный опус немного прояснил ситуацию. В общем там вместо 1 будут 0. Откуда 1 взялась в MA8 в схеме Nemo не совсем проникся, но похоже это перестановка сигнала s в формирование сигнала MA7 и возможно еще какая-то рекомбинация.

А где эту статью можно почитать?
Точный номер журнала не скажу, как и не скажу сканировали ли его. Но форумчанин KALDYH занимался этом делом и приуспел в нем: хттп://zx.pk.ru/showthread.php?t=9592, и тут: хттп://rutracker.org/forum/viewtopic.php?t=2985798. А также вроде как другие сканы тут: хттп://publ.lib.ru/ARCHIVES/M/''Mikroprocessornye_sredstva_i_sistemy''/_''MPSS''.html Но конкретный номер искать вам, на последних листах журнала, по памяти 1988-1990, но могу и ошибаться. Или если английский не смущает, можно просто поднять даташит на 41256.

SoftFelix
29.08.2010, 13:51
Более правильно применить режим "CAS before RAS", появившийся в РУ7 (41256) и при котором работает внутренний счетчик регенирации, а обо всех заморочках с поиском "мигающих" сигналов можно забыть и получить систему с произвольным размером ОЗУ от 256К и до окраин. Но увы никто из разработчиков материнок в этом направлении не копал, и мы "маємо те, що маємо".
Странно. А я думал, что использование в Ленинград-клонах (и в КАЕ, в том числе) _инверсного_ сигнала Н0 (/Н0) в качестве сигнала /CAS и является тем самым фактором перевода памяти в режим работы "CAS before RAS". Даже Иван Макарченко (Ivan Mak, разработчик Спринтера) писал об этом в своей статье о применении SIMM-модулей в отечественных клонах.

fan
29.08.2010, 13:58
сигнал гасящего кадрового импульса (BK)
Это кадровый бордюр .

spensor
29.08.2010, 14:06
Странно. А я думал, что использование в Ленинград-клонах (и в КАЕ, в том числе) _инверсного_ сигнала Н0 (/Н0) в качестве сигнала /CAS и является тем самым фактором перевода памяти в режим работы "CAS before RAS". Даже Иван Макарченко (Ivan Mak, разработчик Спринтера) писал об этом в своей статье о применении SIMM-модулей в отечественных клонах.
Вот про Sprinter не скажу, возможно тут я зря обобщил. Но в остальных клонах со времен РУ5, РУ6 юзается режим регенерации, кажется общепринято его называть "RAS before CAS", при котором перебор адресов вынуждена осуществлять сама схема компьютера.

---------- Post added at 14:05 ---------- Previous post was at 14:02 ----------


Это кадровый бордюр .
А, ну мож и так. Спасибо. В общем вроде по сути я не ошибся, по терминологии маху дал.

---------- Post added at 14:06 ---------- Previous post was at 14:05 ----------


Это кадровый бордюр .
А, ну мож и так. Спасибо. В общем вроде по сути я не ошибся, по терминологии маху дал.

SoftFelix
29.08.2010, 14:11
Но в остальных клонах со времен РУ5, РУ6 юзается режим регенерации, кажется общепринято его называть "RAS before CAS", при котором перебор адресов вынуждена осуществлять сама схема компьютера.
И в КАЕ-1024 в том числе?

---------- Post added at 15:11 ---------- Previous post was at 15:11 ----------


Но в остальных клонах со времен РУ5, РУ6 юзается режим регенерации, кажется общепринято его называть "RAS before CAS", при котором перебор адресов вынуждена осуществлять сама схема компьютера.
И в КАЕ-1024 в том числе?

spensor
29.08.2010, 15:05
И в КАЕ-1024 в том числе?
Исходим из обратного. Зачем вводить "левый" сигнал BK, если бы схема позволяла регенерировать информацию "за спасибо"? Классическая схема регенирации, без использования возможностей улычшенных DRAM.

SoftFelix
29.08.2010, 15:19
Сообщение от SoftFelix
И в КАЕ-1024 в том числе?
Исходим из обратного. Зачем вводить "левый" сигнал BK, если бы схема позволяла регенерировать информацию "за спасибо"? Классическая схема регенирации, без использования возможностей улычшенных DRAM.
Так для меня это тоже не совсем понятно. Просто я несколько раз встречал в рекомендациях по расширению памяти в клонах на МС 41256 и выше, использовать для сигнала /CAS ниверсный Н0, что, _якобы_ (теперь ужЕ не уверен), переводит DRAM в режим "CAS перед RAS". В КАЕ тоже используется /H0 в качестве /CAS.

p.s. Оказывается расширить память сверх 1МБ именно в КАЕ достаточно проблематично? Немо все сигналы для мультиплексоров "растосовал" исключительно для 1МБ?

spensor
29.08.2010, 16:52
Так для меня это тоже не совсем понятно. Просто я несколько раз встречал в рекомендациях по расширению памяти в клонах на МС 41256 и выше, использовать для сигнала /CAS ниверсный Н0, что, _якобы_ (теперь ужЕ не уверен), переводит DRAM в режим "CAS перед RAS". В КАЕ тоже используется /H0 в качестве /CAS.
Боюсь, что изменением фазы сигнала эта задача не решается, imho, требуется более кардинальная перетосовка тактовых сигналов. Рекомендаций не встречал. Будет документ, будет повод разобраться.

p.s. Оказывается расширить память сверх 1МБ именно в КАЕ достаточно проблематично? Немо все сигналы для мультиплексоров "растосовал" исключительно для 1МБ?
Насколько могу судить в KAY-1024, осталась та же классическая система регенирации которая была в KAY-256, Л1. А если так, то да, схема способна поддерживать только память объемом 256К и 1024К.

Keeper
29.08.2010, 18:32
кажется общепринято его называть "RAS before CAS"

Такого цикла нет, есть Hidden Refresh, когда строка массива ячеек регенирируется при операции чтении/записи, т.е. регенирируется та строка к которой происходило обращение, не зависимо от того какая ячейка была адресована стробом /CAS.


И в КАЕ-1024 в том числе?

Надо схемы покурить, я вот думаю что все клоны используют Hidden Refresh за счет обращений видеоконтроллера...


Просто я несколько раз встречал в рекомендациях по расширению памяти в клонах на МС 41256 и выше, использовать для сигнала /CAS ниверсный Н0, что, _якобы_ (теперь ужЕ не уверен), переводит DRAM в режим "CAS перед RAS".


Боюсь, что изменением фазы сигнала эта задача не решается, imho, требуется более кардинальная перетосовка тактовых сигналов.

CAS-before-RAS это обычный (по продолжительности) цикл чтения (/WE=1), только в нем сначала приходит сигнал CAS, а потом RAS, при этом не имеет значения какой адрес защелкивается.

Black_Cat
29.08.2010, 23:52
переводит DRAM в режим "CAS перед RAS"есть такой режим, в нём включается внутенний счётчик в микрухах ОЗУ, который генерит внутри них адреса регенерации, Внешние адреса регенерации могут при этом вообще не подаваться.

---------- Post added at 00:52 ---------- Previous post was at 00:42 ----------


Просто есть у меня некоторое количество замечательных симмов от Samsung'a на 4МБа не проще второй симм поставить?

spensor
30.08.2010, 09:34
Надо схемы покурить, я вот думаю что все клоны используют Hidden Refresh за счет обращений видеоконтроллера...
Прикинул, так оно и есть. Режим "CAS before RAS" в обычной архитектуре крайне сложно реализовать. Этот самый Hidden Refresh по реализации все-таки образуется последовательностью сигналов которую условно можно назвать "RAS before CAS". А совместить когда "первый-второй", а затем "второй-первый" простой инверсией любого сигнала не получится. Надо или видеоконтроллеру иметь собственное независимое ОЗУ, или удваивать частоту обращения к DRAM (один из сигналов CAS/RAS будет на штатной частоте, а втрой на удвоенной).

---------- Post added at 09:34 ---------- Previous post was at 09:30 ----------


а не проще второй симм поставить?
Вообще-то я так понял предлагаешь набор /CAS вводить, а SIMM юзать на 1/4? Тогда SIMM потребуется 4шт...

Black_Cat
30.08.2010, 11:07
Тогда SIMM потребуется 4шт...для 4Мб типо того, либо с доп обвязкой FPM SIMM 4Мб 72pin