User Tag List

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

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

  1. #41

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  2. #42

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

    По умолчанию

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

  3. #43

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #44

    Регистрация
    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

    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,992
    Спасибо Благодарностей отдано 
    227
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    115 сообщений
    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

    Регистрация
    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

    Регистрация
    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

    Регистрация
    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

    Регистрация
    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

    Регистрация
    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)

Ваши права

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