|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Привет всем!
Хотелось бы прояснить для себя такой hardware-вопрос:
Имеем карту памяти:
К примеру, если ПЗУ занимает 16 страниц (по 16Kb) т.е. объем 256 кило, то можно ли как-нить обеспечить доступ к отдельным "затененным" страницам ОЗУ, когда включено ПЗУ и затененным страницам ПЗУ, когда включено ОЗУ ?.
Если мультиплексорами переключать разряды A14-A17 ПЗУ и разряды A14-A17 ОЗУ, т.е. переходить с ПЗУ на ОЗУ и наоборот, то переключаем сразу весь объем в 256Kb. Читал схему распределения памяти Спринтера - там миллион портов, по штуке на каждую страницу - слабо представляю себе схему его работы.
_________________Vasil Ivanov vasil-i@yandex.ru
|
12 Aug 2010 07:24 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Обычно для разделения выборки ОЗУ или ПЗУ используется какой-либо бит (например старший) номера выбранной страницы. Например номера 0,1,2...7Fh это ПЗУ, а 80h,81h,...0FFh - это ОЗУ. Если при включении во всех 4-х регистрах номера страницы (по 16Кб) будет ноль, то получим стартовую конфигурацию, где каждые 16Кб повторяется стартовое ПЗУ, а оно, в свою очередь, сразу же включает нужные страницы (например для стека).
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
12 Aug 2010 10:19 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
| | | | b2m wrote: Обычно для разделения выборки ОЗУ или ПЗУ используется какой-либо бит (например старший) номера выбранной страницы. Например номера 0,1,2...7Fh это ПЗУ, а 80h,81h,...0FFh - это ОЗУ. Если при включении во всех 4-х регистрах номера страницы (по 16Кб) будет ноль, то получим стартовую конфигурацию, где каждые 16Кб повторяется стартовое ПЗУ, а оно, в свою очередь, сразу же включает нужные страницы (например для стека). | | | | |
Ты не понял. Человек хочет получать гибкую конфу, типо:
Page0 - ROM
Page1 - RAM
Page2 - RAM
Page3 - ROM
Page4 - ROM
Page5 - RAM
....
PageN - RAM
Т.е., все адресное разделено на страницы, куда может быть замаплена одна страница ПЗУ или ОЗУ. В простейшем варианте - это страница того же номера (т.е., в PAge0 всегда 0 страница, в 1 - первая и т.д.), в расширенном - любая, задаваемая программно. Делается это регистровым файлом (по сути двухпортовое ОЗУ), каждая ячейка которого хранит старшие адреса ОЗУ и ПЗУ для каждой из страниц пространства. Для установки номеров страниц нужно в области портов отразить все эти ячейки (например, если страниц 128, то это будет 128 байт, при 8битах номера страницы), а считыватель будет выбирать номер страницы из файла согласно номеру страницы адресного пространтсва и подставлять этот номер в старшие адреса ОЗУ или ПЗУ. Достаточно или нет?
|
12 Aug 2010 22:54 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
в ПК-01 Львов помнится под 16К ПЗУ в первой странице было спрятано ОЗУ (вроде как видеоозу) куда доступ был побайтовый через спец-программу или что-то типа - давно это было
|
13 Aug 2010 05:41 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
| | | | HardWareMan wrote: Т.е., все адресное разделено на страницы, куда может быть замаплена одна страница ПЗУ или ОЗУ. В простейшем варианте - это страница того же номера (т.е., в PAge0 всегда 0 страница, в 1 - первая и т.д.), в расширенном - любая, задаваемая программно. Делается это регистровым файлом (по сути двухпортовое ОЗУ), каждая ячейка которого хранит старшие адреса ОЗУ и ПЗУ для каждой из страниц пространства. Для установки номеров страниц нужно в области портов отразить все эти ячейки (например, если страниц 128, то это будет 128 байт, при 8битах номера страницы), а считыватель будет выбирать номер страницы из файла согласно номеру страницы адресного пространтсва и подставлять этот номер в старшие адреса ОЗУ или ПЗУ. Достаточно или нет? | | | | |
Имхо это похоже на то же, что и у меня. Ниже файловый регистр 8x4 (разряды / кол-во регистров).
При карте памяти:
можно 16Kb страницы ПЗУ (0-15) и ОЗУ (начиная с 16-й) включать в любое окно z80. Но при этом теряются первые 16 страниц ОЗУ, вместо которых в карте памяти стоит ПЗУ. А если ПЗУ будет 1Mb, то на ОЗУ останется только 3 метра. Хотелось бы иметь доступ к ОЗУ на ВСЕ 4Mb и плюс к дополнительному ПЗУ (фактически вторая карта памяти). Прикручивать второй файловый регистр для ПЗУ ?. В непонятках, как их (два файловых регистра) согласовывать друг с другом, скажем при копировании из ПЗУ в ОЗУ.
_________________Vasil Ivanov vasil-i@yandex.ru
|
13 Aug 2010 11:31 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Через спец-программу.... Не кузяво это как-то, не наша метода
Если ничего путного не получится, то можно типа прикрутить такой вариант - подключать сразу все 0-15 страниц ОЗУ на место ПЗУ-шных (коммутацией A14..A17 разрядов, что идут к памяти) и сделать типа эти ОЗУ-шные 0-15 страницы, когда они подключены в 0-е окно z80, с защитой от записи. Т.е. скажем 1-я страница ОЗУ включена в 0-е окно z80 - Read Only, она же включенная в 1-е окно камня - запись в нее разрешена. Не плохая фитча, скажем для тестирования кода предназначенного для ПЗУ.
_________________Vasil Ivanov vasil-i@yandex.ru
|
13 Aug 2010 11:51 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
По идее никто не мешает завести ещё один регистр - в который можно писать 8 битов, управляющих первыми 8 страничками адресного пространства и говорящими о том что (ПЗУ или ОЗУ) подключать в соответствующую страничку (если у тебя ПЗУ занимает 16 страничек, то можно завести второй регистр либо управлять одним битом сразу двумя страницами).
P.S. Вариант без дополнительных регистров - место подключения может определять что подключается - например в нулевое окно если цеплять нулевую страницу - выбирается ПЗУ, а если в какое-то другое - ОЗУ.
|
13 Aug 2010 17:09 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Достаточно 4-х бит для 4-х окон по 16Кб адресного пространства процессора. Какая разница, где хранить эти биты для всего ПЗУ (в отдельном ОЗУ или общем). Да, немного сложнее программно устанавливать, ОЗУ или ПЗУ, переключение будет занимать больше тактов, но зато намного проще (а значит надёжнее) аппаратная часть.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
14 Aug 2010 03:40 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
погоди ка - если ты юзаешь Z180, то у него уже есть MMU, преобразующий логические адреса в физические!
|
12 Sep 2010 18:42 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Да, но только на 1 метр. А хочется на 4
_________________Vasil Ivanov vasil-i@yandex.ru
|
18 Sep 2010 05:09 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
Для восьмибитки 1 метра должно хватить за глаза
|
18 Sep 2010 06:58 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Ты должен понимать, что после Спринтера (с его 4-мя метрами) все, что ниже, уже как-то не актуально воспринимается . Второй момент - электронный диск (логический). И 4-х метров может не хватить .
Из области мечтаний - я бы вообще не против иметь м/с DRAM памяти, метров так на 128-256, дополнительную к основной (SRAM). Но это потребует розыска несложного контроллера dram-а. Опять же и здесь потребуется работа с wait-ами. Так что без них никуда.
P.S. Огорчил один момент - z8s180xx имеет пару каналов DMA, но 8-ми битных, а винты общаются при DMA-режиме только словами (16-бит). А так было бы очень заманчиво заюзать винты в этом режиме. Как пишут у zilog-а в мануале пропускная способность dma-режима 1 байт на клок, т.е. при 6 МГц тактовой имеем 6 Мб/сек.
Ух, скока накатал
_________________Vasil Ivanov vasil-i@yandex.ru
|
18 Sep 2010 10:27 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
И много программ использовали эти 4 метра?
А электронный диск можно иначе сделать - не в пределах непосредственно адресуемой памяти, а скажем через порты - так там хоть гигабайты подключай
|
19 Sep 2010 10:43 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Берешь NANDу и цепляешь к портам (всего 2 ячейки). Зато хоть 16Гб. :3
В курсе, что ИБМовсцы применили аппаратный "трюк" для тех же винтов (для переноса данных)? Ты можешь поступить так же, лол.
|
19 Sep 2010 20:10 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
Я собственно о том же
|
19 Sep 2010 20:33 |
|
|
Who is online |
Users browsing this forum: No registered users and 29 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|