User Tag List

Показано с 1 по 10 из 34

Тема: Введение сегментов стэка и данных.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Member
    Регистрация
    16.02.2011
    Адрес
    г. Новочеркасск
    Сообщений
    129
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Введение сегментов стэка и данных.

    Уже давно не ново использование диспетчера памяти с подключением любой 16 кб страницы в любое окно адресного пространства. Когда то на ZX128 о таком диспетчере только мечтали, но АТМ2, Cпринтер, PentEvo сделали такие режимы адресации обыденными. Однако кто пробовал их использовать в реальных программах, осознавали? что использовать все преимущество от них все время что то мешает. То стэк, то малый размер одной страницы для кода. То обработчики прерываний. А ведь если задуматься, то все упиралось в объем адресуемой памяти z80 - все те же 64к.
    В свое время, осваивая ассемблер 8086 я замечал, как много общего у него с z80. И вроде z80 может почти все тоже самое. Я даже назвал бы z80 не 8-битным а полу 16-битным процессором, так как он вполне спокойно справляется с 16 битными арифметическими командами. И тут напрашивается мысль, которая давно веяла. но её всегда отгоняли, думая что это невозможно в принципе, потому что не может быть. Чего не хватает для адресации более чем 64к ? Сегментных регистров. Но их то мы в реальный z80 ни как не впихнем, а переходить на другой тип процессора - это уже сильный шаг в сторону от концепции Спектрума.

    И вот у меня такие вопросы для программистов конфигураций на Альтере. Возможно ли то что я предлагаю? и на сколько вам эта идей кажется интересной?

    Вопрос. Может ли Альтера отловить коды команд (например опросить шину данных при М1)? Я думаю что по этому принципу сделан ускоритель в Спринтере.
    Если это возможно, то есть такая идея, - ввести в конфигурацию режим сегментации. 2 сегмента данных для IX IY и сегмент стэка для SP.
    Это сделало бы удобным и быстрым программирование при обработке больших объемов данных. А если возможно отловить работу со стэком, то и упростило бы написание многозадачных ОС.

    Понадобится 12 портов (при жесткой 16 бит дешифрации, думаю не проблема)
    4 порта - карта памяти для IX
    4 порта - карта памяти для IY
    4 порта - карта памяти для SP

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


    Прошу не пинать за столь изощренную идею.
    Просто представьте, что в этом режиме z80 адресует сразу 256 кб адресного пространства.
    64 основные, 64 через IX, 64 через IY, 64 через SP. И это все сразу одновременно без щелканья страниц.

    1. Нужно будет отловить все команды работы со стэком (pop push), команды вызова подпрограмм call, rst и возвратов из прерываний, ну и циклы обработки прерывания.
    2. отловить команды ld a/r,(ix/iy+n), ld (ix/iy+n),a/r , и арифметические add/adc/sub/sbc a,(ix/iy+n) , inc/dec работы с битам.
    В общем тут, думаю надо плясать от префиксов при M1 , и кода операции, что бы отловить только косвенную адресацию, а не загрузку в сами регистры ix, iy.

    Думаю памяти альтеры должно хватить, И при выявлении закономерности в отлавливаемых командах (по маске) проверок будет не так уж и много.
    На акслератор спринтера ушло не меньше проверок.

    Ну и естественно этот режим расширенной адресации должен программно включаться и отключаться.

    Ну что ? Как вам идея? Возможно все это реализовать?
    А иначе смысл всяких супер видеорежимов, аппаратных спрайтов и тд, если процессор не видит сразу все адресное пространство видеопамяти?

    З.Ы. Ну и буду совсем наглым, раз уж пошла такая пьянка, то можно ещё до кучи и обработать команды LDI и LDIR - сделать перед ними префекс из неиспользуемых команд, что бы чтение шло их сегмента IX а запись в сегмент IY

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 8
    Последнее: 31.03.2013, 00:04
  2. Введение композитного входа в RGB-монитор
    от BYTEMAN в разделе Изображение
    Ответов: 23
    Последнее: 19.03.2010, 11:59
  3. Введение в железо для начинающих
    от kgbplus в разделе Несортированное железо
    Ответов: 9
    Последнее: 03.07.2006, 11:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •