PDA

Просмотр полной версии : 128k - где какие банки ? %)



fan
16.08.2005, 03:34
Или я чего то не догоняю или одно из двух %)

http://zx.pk.ru/attachment.php?attachmentid=1499&stc=1

Если я не наглючил в этой таблице то получается так -


<font face="Courier New, Courier, mono" size="2"><b> DEC HEX BIN
-------------------------------------------------
00000 0000 - 00000000 00000000 ROM
16383 3FFF - 00111111 11111111
-------------------------------------------------
16384 4000 - 01000000 00000000 RAM-1 (5)
32767 7FFF - 01111111 11111111
-------------------------------------------------
32768 8000 - 10000000 00000000 RAM-2 (2)
49151 BFFF - 10111111 11111111
-------------------------------------------------
49152 C000 - 11000000 00000000 RAM-3 (0)
65535 FFFF - 11111111 11111111 64Mb
=================================================
65536 10000 - 0001 00000000 00000000 RAM-4
81919 13FFF - 0001 00111111 11111111
-------------------------------------------------
81920 14000 - 0001 01000000 00000000 RAM-5
98303 17FFF - 0001 01111111 11111111
-------------------------------------------------
98304 18000 - 0001 10000000 00000000 RAM-6
114687 1BFFF - 0001 10111111 11111111
-------------------------------------------------
114688 1C000 - 0001 11000000 00000000 RAM-7
131071 1FFFF - 0001 11111111 11111111 128Mb
=================================================
</b></font>

Внимание вопрос в студии - куда делся пятый и нулевой банк ??? %)
Иными словами почему получается линейно , а не так как принято обозначать ?

caro
16.08.2005, 08:43
Или я чего то не догоняю или одно из двух %)Скорее так:

DEC HEX BIN
-------------------------------------------------
00000 0000 - 00000000 00000000 ROM
16383 3FFF - 00111111 11111111
-------------------------------------------------
16384 4000 - 01000000 00000000 RAM-5
32767 7FFF - 01111111 11111111
-------------------------------------------------
32768 8000 - 10000000 00000000 RAM-2
49151 BFFF - 10111111 11111111 48Кb
-------------------------------------------------
49152 0C000 - 000 11000000 00000000 RAM-0
65535 0FFFF - 000 11111111 11111111
=================================================
1C000 - 001 11000000 00000000 RAM-1
1FFFF - 001 11111111 11111111
-------------------------------------------------
2C000 - 010 11000000 00000000 RAM-2
2FFFF - 010 11111111 11111111
-------------------------------------------------
3C000 - 011 11000000 00000000 RAM-3
3FFFF - 011 11111111 11111111
-------------------------------------------------
4C000 - 100 00000000 00000000 RAM-4
4FFFF - 100 00111111 11111111
-------------------------------------------------
5C000 - 101 01000000 00000000 RAM-5
5FFFF - 101 01111111 11111111
-------------------------------------------------
6С000 - 110 10000000 00000000 RAM-6
6FFFF - 110 10111111 11111111
-------------------------------------------------
7C000 - 111 11000000 00000000 RAM-7
7FFFF - 111 11111111 11111111 128Кb
=================================================

spensor
16.08.2005, 09:09
64Mb
Нехило вы память измеряете:)

fan
16.08.2005, 11:26
Нехило вы память измеряете
Ну да %) Шифером шурша ;)

Товарищ caro похоже составил всё как надо , но хоть убейте не пойму почему так %) С мультиплексора идёт всего три адресные линии а не такая куча %) Но даже из этой таблицы мне не понятно почему пятый банк сидит во втором %)

Вобщем граждане обьясните мне (как ребёнку) пока мой разум цел... Почему так ? %)

Направлени от психиатора прилагается ...

fan
16.08.2005, 11:40
Приложение к направлению %)


<font face="Courier New, Courier, mono" size="2"><b>
DEC HEX BIN
-------------------------------------------------
00000 0000 - 00000000 00000000 ROM
16383 3FFF - 00111111 11111111
-------------------------------------------------
16384 4000 - 01000000 00000000 RAM-1 (5)
32767 7FFF - 01111111 11111111
-------------------------------------------------
32768 8000 - 10000000 00000000 RAM-2 (2)
49151 BFFF - 10111111 11111111
-------------------------------------------------
49152 C000 - 11000000 00000000 RAM-3 (0)
65535 FFFF - 11111111 11111111 64Kb
=================================================
65536 10000 - 0001 00000000 00000000 RAM-4
81919 13FFF - 0001 00111111 11111111
-------------------------------------------------
81920 14000 - 0001 01000000 00000000 RAM-5
98303 17FFF - 0001 01111111 11111111
-------------------------------------------------
98304 18000 - 0001 10000000 00000000 RAM-6
114687 1BFFF - 0001 10111111 11111111
-------------------------------------------------
114688 1C000 - 0001 11000000 00000000 RAM-7
131071 1FFFF - 0001 11111111 11111111 128Kb
=================================================
131072 20000 - 0010 00000000 00000000
262143 3FFFF - 0011 11111111 11111111 256Kb
=================================================
262144 40000 - 0100 00000000 00000000
524287 7FFFF - 0111 11111111 11111111 512Kb
=================================================
524288 80000 - 1000 00000000 00000000
1048575 FFFFF - 1111 11111111 11111111 1024Kb
=================================================
AAAA AAAAAAAA AAAAAAAA
1111 11111198 76543210
9876 543210</b></font>

caro
16.08.2005, 12:01
С мультиплексора идёт всего три адресные линии а не такая куча %) Но даже из этой таблицы мне не понятно почему пятый банк сидит во втором %)Для понимания этого надо дорисовать мультплексоры адресных линий ОЗУ.

fan
16.08.2005, 12:18
Мысленно дорисовываю но ничего "не вижу" :( (кому не лень , дорисуйте плиз что надо)
Допустим у меня SRAM , тогда как ???

spensor
16.08.2005, 13:17
Внимание вопрос в студии - куда делся пятый и нулевой банк ??? %)
Иными словами почему получается линейно , а не так как принято обозначать ?...С мультиплексора идёт всего три адресные линии а не такая куча %) Но даже из этой таблицы мне не понятно почему пятый банк сидит во втором %)
Попытаюсь объяснить, если я сам понял, что требуется объяснить. То что будет сказано это мои догадки. Итак, первым делом вспоминаем историю, а точнее такие модели, как фирменные Spectrum-16 и Spectrum-48. В первом было 16Кб RAM-памяти по адресам #4000-#7FFF. Доступ к памяти имели проц и видеоконтроллер и память была состязательная. Потом появился апгрейд в виде модуля памяти на 32Кб и доступ в нее имел только проц, соответственно обращение к памяти #8000-#FFFF происходило быстрее, чем к #4000-#7FFF. В Spectrum-128 эту особенность учли и одна линейка RAM была состязательной (банки 4-7), а другая (банки 0-3) принадлежала исключительно процу.
К вопросу о том, почему 5 банка лежит там, где по логике должна находиться 1, с одной стороны смотри выше (экран находится в ней), а с другой стороны поставь два ряда цифр рядом и увидешь, что 1 соответствует 5.
Одним словом вместо 0 банки находится ROM, вместо 1 - 5, 2 банка находится на своем законном месте, ну а сама 0 банка находится в #С000-#FFFF, по простой причине - порт оверлея по сбросу обнуляется и биты D0-D2 становятся 000%.
Ну а в вопросе с SRAM - хочешь получить совместимость - повторяй особенности прототипов.

caro
16.08.2005, 13:53
Мысленно дорисовываю но ничего "не вижу" :( (кому не лень , дорисуйте плиз что надо)
Допустим у меня SRAM , тогда как ???Распределение страниц в памяти Спектрума 128
можно было сделать и линейной, но сделано
как сделано, видимо из соображений размещения
обеих видео-страниц в одном банке ОЗУ.

Привожу фрагмент схемы Кворума 1024.

По схеме видно, что Видео-страницы имеют
адреса: A14M="1", A15M=SCREEN, A16M="1".
Тоесть если SCREEN=0, имеем VRAM=101(5),
при SCREEN=1, VRAM=111(7).
Естественно A17M,A18M,A19M=000.

fan
16.08.2005, 14:28
2 spensor
Похоже мне надо хлебнуть чегонить покрепче , и явно не кофя ;)

Я так понимаю всё нафиг перепутано -


DEC HEX BIN
-------------------------------------------------
??????? ROM
-------------------------------------------------
81920 14000 - 0001 01000000 00000000 RAM-5
98303 17FFF - 0001 01111111 11111111
-------------------------------------------------
32768 8000 - 0000 10000000 00000000 RAM-2
49151 BFFF - 0000 10111111 11111111
-------------------------------------------------
00000 0000 - 0000 00000000 00000000 RAM-0
16383 3FFF - 0000 00111111 11111111
=================================================
?????????
-------------------------------------------------
?????????
-------------------------------------------------
?????????
-------------------------------------------------
?????????
=================================================
Собсно остальные банки как "лежат" ???

caro
16.08.2005, 14:33
Собсно остальные банки как "лежат" ???Все остальные банки ОЗУ лежат в адресах 0C000h...0FFFFh.
Или я не улавливаю нить Вашей мысли.
Пойду тоже выпью чего покрепче :)

spensor
16.08.2005, 15:04
Я так понимаю всё нафиг перепутано
2 fan
Что собственно перепутано? Ты разве никогда не работал с верхней памятью? Есть обычное процессороное пространство памяти #0000-#FFFF, выше которого как не крути на Z80 не уедешь. Никаких адресов >#FFFF на Z80 просто нет. А для доступа к остальной памяти применен так называемый метод оверлея, когда дополнительные фрагменты памяти отображаются в это адресное пространство. В Spectrum-128 этот оверлей организован так, что отображение банок происходит в адресное пространство #С000-#FFFF ,в каком то зарубежном клоне было еще одно окно проецирования #8000-#BFFF, ну а в Спринтере 4 окна проецирования.
В Spectrum-128 банки памяти 2 и 5 жестко сидят по адресам #8000-#BFFF и #4000-#7FFF в адресном пространстве процессора. Кроме того эти же банки (2 и 5) могут одновременно отображаться по базовым адресам и в оверлее #С000-#FFFF. Возможен и такой фокус как был применен в Черном Вороне, когда у тебя будет отдельно экран (7 банка) болтаться за пределами адресного пространства и чистые 48Кб под код!

fan
16.08.2005, 15:10
Привожу фрагмент схемы Кворума 1024
Ну да, всё перепутано. Щаз получше посмотрю и доложу о галюцинациях ;)

fan
16.08.2005, 15:21
Или я не улавливаю нить Вашей мысли.
Меня интересует расположение в физической памяти, а не в виртуальных 1C000 - 7FFFF . Собсно это то мне башню и срывает ;)


А для доступа к остальной памяти применен так называемый метод оверлея, когда дополнительные фрагменты памяти отображаются в это адресное пространство.
Ну это то понятно любому програмёру (иначе я бы и таблицу бы не нарисовал ;) ), меня интересует ресположение этого дела в живых мелкосхемах.

caro
16.08.2005, 15:31
Меня интересует расположение в физической памяти, а не в виртуальных 1C000 - 7FFFF .
...
меня интересует ресположение этого дела в живых мелкосхемах.Ну это то как раз не важно для ОЗУ.
Надо только обеспечить регенерацию страниц ОЗУ за время указанное в ТУ (или в DS).

spensor
16.08.2005, 15:38
Ну это то понятно любому програмёру (иначе я бы и таблицу бы не нарисовал ), меня интересует ресположение этого дела в живых мелкосхемах.
Да я же уже сказал:
Spectrum-16 линейка 4116(РУ6) (один набор микрух дающих 16Кб)
Spectrum-48 и ранние отечественные клоны линейка 4116 и 4164(РУ5)(в оригинале 2*4116)
Spectrum-128 две линейки 4164, в одной сидят банки 0-3, в другой - 4-7.
Spectrum>128 (в частности KAY-256) одна линейка 41256(РУ7), все банки состязательные.

Ronin
16.08.2005, 15:39
Ну это то понятно любому програмёру (иначе я бы и таблицу бы не нарисовал ), меня интересует ресположение этого дела в живых мелкосхемах.
теоретически оно может любым ;) главное чтоб логика была правильная (можно например адреса поперепутать).
а практически оно обычно соответствует нумерации "банок".

fan
16.08.2005, 16:59
главное чтоб логика была правильная
Ну да, это я и пытаюсь понять. Насчёт расположения в мелкосхемах видать выразился не правильно.


а практически оно обычно соответствует нумерации "банок".
Вот я и пытаюсь понять как "0 01xxxxx xxxxxxxx" (на схеме) соответствует "1 01xxxxx xxxxxxxx" (RAM-5) %) Чёто нефига не выходит :(

Кому не лень распишите всё на примере SRAM (без страшных мультиплексоров, я их конечно не боюсь ;) но просто не вижу связи... что DRAM сними , что SRAM без них (видео несчитается)).

icebear
16.08.2005, 17:25
Кому не лень распишите всё на примере SRAM (без страшных мультиплексоров, я их конечно не боюсь ;) но просто не вижу связи... что DRAM сними , что SRAM без них (видео несчитается)).

А как это без муксов? А кто переключает шину видеопроцессора и основного процессора?

caro
16.08.2005, 18:07
Кому не лень распишите всё на примере SRAM (без страшных мультиплексоров, я их конечно не боюсь ;) но просто не вижу связи... что DRAM сними , что SRAM без них (видео несчитается)).Посмотри вариант с SRAM, может теперь станет понятней.
Хотя, как сам понимаешь, без мультиплексоров не обойтись.
Кстати Mick уже кидал в форум: http://zx.pk.ru/showthread.php?t=1093
схему на SRAM для 64 Кб:
http://zx.pk.ru/attachment.php?attachmentid=1306

fan
16.08.2005, 19:05
А как это без муксов? А кто переключает шину видеопроцессора и основного процессора?
(видео несчитается) ИМХО - для примера не нужны.


Посмотри вариант с SRAM, может теперь станет понятней.
Ооох %)
Хоть режте, но если первая таблица правильная (http://zx.pk.ru/attachment.php?attachmentid=1499&stc=1) и эта схемка тоже http://zx.pk.ru/attachment.php?attachmentid=1500 , то получается именно так как в пятом посте (http://zx.pk.ru/showpost.php?p=22571&postcount=5), т.е. совершенно линейно.
Вероятно я что то упускаю из виду, но в упор не пойму что...

fan
16.08.2005, 19:14
Кстати Mick уже кидал в форум: http://zx.pk.ru/showthread.php?t=1093
схему на SRAM для 64 Кб:
http://zx.pk.ru/attachment.php?attachmentid=1306
Тоже самое :( Всё линейно (в моём понимании).

caro
16.08.2005, 20:48
Вероятно я что то упускаю из виду, но в упор не пойму что...Ну наконец я понял, что у тебя не сходится.
Посмотри на свою схему:
http://zx.pk.ru/attachment.php?attachmentid=1500
Здесь не зря A14 транслируется мультиплексором IC2
и на A14M и на A16M.
При обращении Z80 к странице с A15,A14=01(page 1)
за счет такого подключения имеем:
A16M,A15M,A14M=101(page 5).

fan
16.08.2005, 22:42
Здесь не зря A14 транслируется мультиплексором IC2
и на A14M и на A16M.
При обращении Z80 к странице с A15,A14=01(page 1)
за счет такого подключения имеем:
A16M,A15M,A14M=101(page 5).
Спятой разобрались ;) (как я высказал предположение она просто "перепутывается" с первой), вторая на месте .
Значит нулевая становится четвёртой при Z80 A15=1,A14=1 когда в порте 000 т.е. нулевая страница .
Финиш :)))))))

Вобщем благодарю вас сэр caro за то что помогли развееть мои галюцинации!!!
Придётся состряпать монстро-таблицу чтоб совсем и всем ясно стало ;)

P.S. Подтверждаю тот факт что через сутки бессонницы мозги становятся на место ;)

spensor
17.08.2005, 08:57
Продолжая тему, предлагаю ознакомиться с двумя файлами.
На Сегменты.gif показано, как, собственно, происходит такая хитрая выборка/подстановка банок памяти. Это фрагмент схемы "Пентагон-128". Полукомплекты выводов мультиплексора D61 переключаются элементом D63.2 между адресацией сегмента 3 (#C000-#FFFF) по входам А, и остальных трех сегментов 0-2 (#0000-#BFFF) по входам B. Какая банка окажется в соответствующем сегменте определяется состоянием адресных линий А14 и А15.
В табличке Адреса.rtf показано, какие сигналы выставляет процесссор и видеоконтроллер при обращении к памяти. Ввиду крайне иррационального обозначения сигналов видеоконтроллера в "Пентагон-128" имена сигналов взяты с "Ленинграда".
Для видеоконтроллера, в принципе, имеются 64Кб памяти соответствующие банкам 4-7, но ввиду жесткого закрепления адресов, самому видеоконтроллеру доступны только два участка #4000-#5B00 и #C000-#DB00.

fan
20.08.2005, 00:26
У меня очередной вопрос ;)

В схеме KAY-1024 с микрухи D45 (та что в порте #7FFD) линии D0-D2 (или A14P-A16P) идут как то не так на мультиплексор D47 ;) т.е. не на входы A , а на входы B (как и остальные сигналы)!
Собсно вопрос - это нормально(и меня опять глючит %) или действительно не правильно нарисовали ? (получается что проц влетает либо в нулевую либо в седьмую страницу! %) )

caro
20.08.2005, 07:28
У меня очередной вопрос ;)

В схеме KAY-1024 с микрухи D45 (та что в порте #7FFD) линии D0-D2 (или A14P-A16P) идут как то не так на мультиплексор D47 ;) т.е. не на входы A , а на входы B (как и остальные сигналы)!
Собсно вопрос - это нормально(и меня опять глючит %) или действительно не правильно нарисовали ? (получается что проц влетает либо в нулевую либо в седьмую страницу! %) )Все там правильно.
Посмотри по цоколевке КП11, в схеме Кая линии A и B обозначены с точностью до наоборот :)
Это наверное прикол Немо.

fan
20.08.2005, 17:50
В очередной раз благодарю ! :) Чесно говоря я думал что таких приколов как в семах ленинградов-1 уже не будет ;)

И кстати в схеме 48->128к для Ленинграда-2 Р.Л.Ваш комьютер 11/97 с.24, точно такой же прикол!

Вах, щаз пересмотрел всё что есть и обнаружил этот юмор во всех версия KAY-256 ! 8) традиция однако :D