Важная информация

User Tag List

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 41 по 50 из 67

Тема: Перемещаемость на лету

  1. #41
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    262
    Спасибо Благодарностей получено 
    271
    Поблагодарили
    205 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    alone, вот и сделай простую виртуальную машину
    4 24битных регистра
    стек, флаги, PC
    минимальный набор команд и вперед
    С уважением,
    Jerri / Red Triangle.

  2. #42
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сомневаюсь, что это даст какой-то выигрыш по сравнению с критическими секциями или разбиением по 256 байт. По скорости уж точно.

  3. #43
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    262
    Спасибо Благодарностей получено 
    271
    Поблагодарили
    205 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    alone, ну зато на спеке будет своя виртуальная машина
    можно с наворотами
    С уважением,
    Jerri / Red Triangle.

  4. #44
    Guru Аватар для bigral
    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    Сомневаюсь, что это даст какой-то выигрыш по сравнению с критическими секциями или разбиением по 256 байт. По скорости уж точно.
    Я че-то никак не пойму сути разбиения на 256 байтные куски, можешь детально обьяснить как это должно сработать?

    По поводу виртуальной машины, софт эмулятор раз в 5...10 медленее реального процессора, т.е. для той скорости которая была на реальном компе с 7mhz 68000 потребуется z80 со скоростью примерно 50...70mhz и с такой же быстрой памятью, да?

  5. #45
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    Придумайте, как писать программу так, чтобы она могла быть в любой момент прервана (INT) и перемещена в памяти (возможно, с пересчётом каких-то ячеек по какому-то списку, возможно, динамически генерируемому). Так что при возврате указатели на переменные или массивы устаревают. И стек вызовов тоже. Допустим, перемещение производится по 256 или кратное число байт.
    Дима, а чем не подходит принцип, реализованный в iS-DOS (для остальных - обсуждаем сам принцип, а не систему) для резидентов. В тамошнем асме, если компилировать не запускаемый COM-модуль, а резидент (копиляция по ключу /r создает перемещаемый RES-файл), в конце создаваемого после компиляции файла после метки конца "пришивается" табличка с казателями на все критические COM/JP и иже с ними, значение в которых надо менять, добавляя или отнимая смещение при смене стартовых" координат. Эта схема в iS-DOS работает, когда надо добавить или удалить драйвер. Например при удалении драйвера из ряда подключенных, остальные смещаются вверх, занимая освободившееся место, и все переходы в них пересчитываются по табличке.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  6. #46
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    Я че-то никак не пойму сути разбиения на 256 байтные куски, можешь детально обьяснить как это должно сработать?
    После удаления процессов память превращается в решето. И целую программу туда уже не всунуть. Зато если программа состоит из маленьких кусочков, её можно распихать по дырам.

    Цитата Сообщение от Максагор Посмотреть сообщение
    Дима, а чем не подходит принцип, реализованный в iS-DOS (для остальных - обсуждаем сам принцип, а не систему) для резидентов.
    Тем, что в резидент входят и выходят, а в программе крутятся.

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

  8. #47
    Guru Аватар для bigral
    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    После удаления процессов память превращается в решето. И целую программу туда уже не всунуть. Зато если программа состоит из маленьких кусочков, её можно распихать по дырам.
    Ясно, но если код и данные перемещаемы то можно их просто уплотнять (два эти подхода смахивают на свои эквиваленты - форматы дисков TRDOS и FAT12).

    Вообще думаю данная тема должна рассматриваться в более широком смысле - runtime для z80 позволяющий под него компилить более менее современные исходники. А основные задачи мне видятся такими:

    1. изза ограниченного адресного пространства у z80 нужно иметь механизм для эфективной трансляции 24bit\32bit адресов в спековский <номер страницы + смещение внутри страницы>;
    2. нужно иметь код который не привязан к конкретным адресам и в идеале перемещаемый на лету;

    Вероятно решить эти задачи можно но скорее с серьезной потерей скорости.

  9. #48
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сам по себе Z80 проблем не испытывает - можно прикрутить к нему 4 окна памяти или даже сегментную адресацию. Проблема на архитектуре 128К, которая в общем-то мертва, но если под неё есть адекватное решение, то почему бы не обсудить

    Разумеется, перемещаемость лучше, потому что даже одна программа может иметь больше 24К кода, например, Pro Tracker, BGE, Melon, Lara Croft.

  10. #49
    Guru Аватар для bigral
    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    Сам по себе Z80 проблем не испытывает - можно прикрутить к нему 4 окна памяти или даже сегментную адресацию. Проблема на архитектуре 128К, которая в общем-то мертва, но если под неё есть адекватное решение, то почему бы не обсудить
    Чето я опять не до конца понял о чем это? Как окна решают озвученные проблемы? "Прикрутить сегментную адресацию" - что тут подразумевалось, разделить память инструкций и данных? Это уже есть например в PDP-11 но толку мало, обьем всеравно смешной на данный момент. В моем понимании именно Z80 испытывает основные проблеммы с его 16bit адресами + отсутствием команд адресации относительно PC.

  11. #50
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    Как окна решают озвученные проблемы?
    У каждой программы своя страница(ы) кода и своя страница переменных и стека. Их не придётся релоцировать.

    Цитата Сообщение от bigral Посмотреть сообщение
    "Прикрутить сегментную адресацию" - что тут подразумевалось, разделить память инструкций и данных?
    Да. Проверяя коды команд внешней логикой. Можно даже сделать сегменты совершенно аналогично IBM PC, т.е. перекрывающиеся. И опять не придётся релоцировать.

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Ваши права

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