Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   Странные мысли (http://zx-pk.ru/showthread.php?t=1255)

acidrain 4th August 2005 21:23

Странные мысли
 
от acidrain'а. =) Есть у меня в моем КПК "сборник" записочек и мыслей об Амиге и спектруме, оси и других моих интересах. Тут недавно прочел одну заметку свою и решил ею поделиться.
Code:

Semi-MMU

Представляет собой устройство, которое подменяет логические адреса
физическими. Т.е. если логический адрес программы равен $0, то
физически она будет расположена, например, с адреса $8000, что дает
возможность использовать все адресное пространство процессора Z80 или
его аналога. Возможно применение 24/32 битной адресации, что в свою
очередь позволит адресовать от 16 МБ до 4ГБ.
В случае применения аппаратной защиты памяти данное устройство станет
полноценным MMU.

Как его можно реализовать не знаю, я только начинающий железячник %).
А вот зачем это - другой вопрос ;)

SMT 4th August 2005 22:50

Quote:

Originally Posted by acidrain
А вот зачем это - другой вопрос

вот с этого надо было начинать, а то непонятно
Quote:

Originally Posted by acidrain
Т.е. если логический адрес программы равен $0, то
физически она будет расположена, например, с адреса $8000, что дает
возможность использовать все адресное пространство процессора Z80

так оно и сейчас полностью используется, если включить озу в нулевую банку
Quote:

Originally Posted by acidrain
Возможно применение 24/32 битной адресации

как это сделать на обычном z80?

SfS 5th August 2005 07:20

Quote:

Originally Posted by acidrain
Как его можно реализовать не знаю, я только начинающий железячник %).А вот зачем это - другой вопрос ;)

Я както предлагал это сделать в виде отдельной плиски. По сути надо иметь:
- регистр базового адреса.
- сумматор (который будет вычислять физический адрес памяти по следующему алгоритму "базовый адрес памяти" + "смещение"(значение адресной шины)).

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

Лучше всего иметь для каждой банки в 16К отдельный регистр базового адреса.

Размер физической памяти, определяется разрядностью регистра базового адреса, которую можно сделать любой.

Думайте в общем - виртуальность штука полезная :)

Splinter 5th August 2005 07:46

Quote:

Originally Posted by SMT

так оно и сейчас полностью используется, если включить озу в нулевую банку

Не имею понятия, как такое провернуть на профи, про оба окна проецирования ОЗУ мне известно, по как вместо ПЗУ подставить оперативку я не знаю. :( Подскажи ?

SMT 5th August 2005 08:17

Quote:

Originally Posted by Splinter
Не имею понятия, как такое провернуть на профи, про оба окна проецирования ОЗУ мне известно, по как вместо ПЗУ подставить оперативку я не знаю Подскажи ?

бит 4 порта #DFFD?

acidrain 5th August 2005 11:56

Quote:

Originally Posted by SMT
как это сделать на обычном z80?

SfS Дал тебе ответ на твой вопрос =)
Я это и пытался объяснить - например 24 бита будут выглядеть так:
8бит - номер банки, 16 бит - обычное з80 адресное пространство. Вот и считай - 256*65536 = 16 метров =)
Программист просто будет запрашивать адрес, скажем в таком виде $203f4, а плисина будет открывать соответствующие физические адреса.

acidrain 5th August 2005 12:01

Quote:

Originally Posted by SMT
так оно и сейчас полностью используется, если включить озу в нулевую банку

Сколько уходит тактов проца и времени на разработку прог со страничной организацией памяти. А так будет проще, программер даже не заметит, что у z80 не знает адреса свыше 65к и где его коды распологаются физически.
Ничего плохого не вижу в том, что я предложил. Если тебя устраивает переключение банок, то ради Бога, преключай. Я б предпочел такой вариант, как было предложено выше =)

Shiru 5th August 2005 12:09

Quote:

Originally Posted by acidrain
Программист просто будет запрашивать адрес, скажем в таком виде $203f4

И как он будет это делать?;) Опять - старшую часть адреса в отдельный порт...

icebear 5th August 2005 13:06

Quote:

Originally Posted by acidrain
Я это и пытался объяснить - например 24 бита будут выглядеть так:
8бит - номер банки, 16 бит - обычное з80 адресное пространство. Вот и считай - 256*65536 = 16 метров =)

1. Что вы собираетесь делат с 16-ю метрами памяти, а тем более с 4ГБ?
2. Зачем изобретать велосипед (Z180)?
3. Если всё-таки Z180 - то Zilog Developer Studio c ассемблером и Си, где есть макросы для работы с MMU.
4. Если всё-таки Z180 - есть портированые под него СР/М и UZIX.

acidrain 5th August 2005 13:57

Quote:

Originally Posted by icebear
2. Зачем изобретать велосипед (Z180)?

Хммм и что, можно воткнуть з180 вместо з80 в мой импульс-м? А не совместимость по портам (у всех зилохов выше 80), что с ней делать?
А это доработка к ныне существующим клонам ;)


All times are GMT +4. The time now is 17:15.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.