ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 24 окт 2018, 05:37

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Торможение при обращении к ОЗУ
СообщениеДобавлено: 13 окт 2012, 15:25 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщений: 123
Поскольку вопрос о разности в скорости выполнения кода в ОЗУ и ПЗУ уже не единожды возникал на форуме, то я создал для него отдельную тему. Постепенно постараюсь собрать здесь и прочие реплики (или ссылки на них).

Между прочим, очень легко проверить наличие торможения при обращении процессора к ОЗУ (на реале).
Записываем содержимое ПЗУ "на ленту" (удобнее, несомненно прямо в WAV через звуковую карту)
Копируем содержимое ПЗУ в ОЗУ и тоже пишем его. Сравниваем в звуковом редакторе длительности и спектры. Для записи из ОЗУ длительность скорее всего будет больше, а пики в спектре левее.

UPD.
Ссылки на реплики по заданной теме:
1) [url=http://lvovpc.ho.ua/forum/viewtopic.php?p=1934#p1934]Запуск эмулятора ПК-01 "Львов" на Dingoo A320[/url]
2) [url=http://lvovpc.ho.ua/forum/viewtopic.php?f=8&t=24]Неокрепшая молодёжная психика и Луркмоар :-)[/url]
3) [url=http://lvovpc.ho.ua/forum/viewtopic.php?f=2&t=59&p=600]Недостатки и недоработки ПК-01 "Львов"[/url]


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 19:19 
Не в сети

Зарегистрирован: 29 мар 2012, 21:35
Сообщений: 115
[quote="ivagor"]Записываем содержимое ПЗУ "на ленту" (удобнее, несомненно прямо в WAV через звуковую карту)
Копируем содержимое ПЗУ в ОЗУ и тоже пишем его. Сравниваем в звуковом редакторе длительности и спектры. Для записи из ОЗУ длительность скорее всего будет больше, а пики в спектре левее.

Не думаю, что отличие будет значительным. Отношение количества тактов, затраченных на чтение одного байта из ОЗУ, к общему количеству тактов, затраченных на запись байта на магнитофон, ничтожно мало.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 окт 2012, 05:57 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщений: 123
Согласен, что разница скорее всего будет очень маленькой, но не думаю, что она будет неизмеримой при записи 16 Кб. Это слегка похоже на обнаружение экзопланет :). Для повышения точности можно провести каждый "эксперимент" по 2-3 раза.
Но можно предложить и более четкий вариант - сначала воспроизвести звук с использованием процедуры ПЗУ (даже можно из бейсика через SOUND), потом процедурой из ОЗУ, задав D и L и использовав фрагмент аналогичный DE94-DEBE.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 14 окт 2012, 10:00 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
[quote="ivagor"]Но можно предложить и более четкий вариант - сначала воспроизвести звук с использованием процедуры ПЗУ (даже можно из бейсика через SOUND), потом процедурой из ОЗУ, задав D и L и использовав фрагмент аналогичный DE94-DEBE.


Ага, это верно замечено. Звук будет разниться.

Я уже писал, но повторюсь, что разница в скорости присутствовала. Смутно помню, что я копировал процедуры Chameleon DOS в ОЗУ, после чего они переставали работать с диском из-за нехватки шустрости. Нужно было заново подбирать задержки.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 окт 2012, 12:36 
Не в сети

Зарегистрирован: 29 мар 2012, 21:35
Сообщений: 115
[quote="ivagor"]Но можно предложить и более четкий вариант - сначала воспроизвести звук с использованием процедуры ПЗУ (даже можно из бейсика через SOUND), потом процедурой из ОЗУ, задав D и L и использовав фрагмент аналогичный DE94-DEBE.

Вот тут полностью поддерживаю идею.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 14 окт 2012, 21:46 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
Но в целом я склонен думать, что решить эту загадку мы (как и прочие) сможем лишь тогда, когда в коллекцию vinxru попадет ПК-01. Наберемся терпения.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 15 окт 2012, 09:12 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщений: 123
У меня есть надежда на Tim0xу


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 15 окт 2012, 14:17 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
[quote="ivagor"]У меня есть надежда на Tim0xу

Теперь я и буду надеяться на Tim0xу. :)

Все-таки интересно, а из-за чего происходило такое торможение? Пока [url=http://lvovpc.ho.ua/forum/viewtopic.php?p=600#p600]было озвучено[/url] одно предположение:
[quote]2) Разные и некратные частоты CPU и видеоконтроллера - это приводило к тому, что программа, выполняемая из ОЗУ работала на 30% медленнее, выполняемой из ПЗУ.

UPD.
Добавил в первом посте ссылок по теме.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 17 окт 2012, 10:12 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
Завеса тайны над торможением пала. Достаточно было внимательно пересмотреть наличные материалы. И перечитать тему "[url=http://lvovpc.ho.ua/forum/viewtopic.php?p=1036#p1036]Upgrade ПК-01 "Львов[/url]", где упоминается доработка под названием "турбирование". Ее суть проста:
[quote]Турбирование. Эта доработка проста и не требует никаких дополнительных деталей. Сводится она к уменьшению задержки при работе процессора с ОЗУ. Доработка была опробована с Z80.

А если обратиться к классическому труду "[url=http://www.wuala.com/lvov_pc01/filestore/docs/manuals/pk02.djvu/]ПК-02 "Львов" своими руками[/url]", то там мы найдем несколько любопытных деталей:
[quote]Эта доработка проста и не требует никаких дополнительных деталей. Сводится она к уменьшению задержки при работе процессора с ОЗУ. Доработка была опробована с Z80.

9 D50 отрезать от всего.
Отрезанную от 9-ой ножки дорожку соединить с 10 ножкой этой же микросхемы.
11 D5 отрезать от всего (кроме проводка, идущего к ней от Z80).
11 D5 соединить с 13 (150 нс.), 14 (100 нс.) или 15 (50 нс.) ножкой D50.

В зависимости от того, с какой ножкой микросхемы D50 Вы соедините 11 D5, скорость выполнения программы будет меняться. На первый взгляд, эта доработка почти незаметна, но потом Вы поймете, как Вам ее недоставало…

После выполнения последней доработки рекомендую «погонять» ПК и убедиться, что он не сбоит. Этому могут способствовать «дубовые» КР565РУ5Д — микросхемы основного ОЗУ.
И там же:
[quote]Если Вы удовлетворились работой Z80, то Вы можете еще слегка поднять скорость работы Вашего ПК (на 10 – 25 %).
10-25%! Какой же все-таки ПК-01 был ПК-01... :shock:

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 17 окт 2012, 11:09 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщений: 123
Материалы известные и доступные, но вопрос в том, как перевести написанное там в конкретные значения времени выполнения команд в тактах (а будет ли это время=const для каждой команды или оно будет зависеть от каких-то факторов?). Кроме того, в любом случае хотелось бы иметь хоть частичное экспериментальное подтверждение.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 03 окт 2014, 08:24 
Не в сети

Зарегистрирован: 01 сен 2014, 08:19
Сообщений: 22
Диспетчер памяти работает таким образом:

идут циклы доступа к ОЗУ строго последовательно
CPU VIDEO по 400 ns
видео свои циклы не пропускает,
CPU живет своей жизнью и может захотеть ОЗУ в любой момент,
тогда ему приходится ждать своего цикла как повезет до 400 нс + выход из wait state
фактическое торможение программы теоретически предсказать нельзя и можно только точно померять в среднем

теперь про ПЗУ:
замедлялка процессора срабатывает при любом обращении ниже адреса С000

т.о. доступ к ПЗУ всегда идет быстро, но (!) поскольку программы в ПЗУ лазят в ОЗУ, то фактически тоже будут тормоза. Не такие большие, но существенные для задач реального времени типа MFM.
Опять же, предсказать теоретически как будет тормозить - невозможно,
только мерять среднее.

Поскольку 8080 дублирует на старшие адреса, младшие адреса команд IN & OUT имеем артефакт с застреванием младших портов.
может экономили на элементах, а может просто забыли допилить диспетчер для игнорирования доступа к портам.

Тем неменее: у львова самая красивая и правильная схемотехника из всего совкового, что я видел.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 03 окт 2014, 09:40 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
[quote="kapitan"]Опять же, предсказать теоретически как будет тормозить - невозможно,
только мерять среднее.

Хаотическое притормаживание при обращении к ОЗУ - это сильный ход. Для полноты картины приведу цитату из [url=http://lvovpc.ho.ua/forum/viewtopic.php?p=4020#p4020]исходников[/url] горячо любимого MESS:
[quote]
When the CPU accesses RAM, wait states are inserted until the RAM transfer is complete.

CPU clock: 18MHz/9 = 2MHz
memory cycle time: 20MHz/8 = 2.5MHz
CPU memory access time: (min) approx. 9/20MHz = 450ns
(max) approx. 25/20MHz = 1250ns
pixel clock: 20MHz/4 = 5MHz

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 03 окт 2014, 11:25 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Извините, я немного не понял. Видео доступается до ОЗУ, замораживая доступ на 400 мс. на адреса ниже С000. Потом, как я понял, открывается окно для проца, правильно? Если правильно, то сколько это окно будет открытым, пока видео снова не залочит?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 03 окт 2014, 17:07 
Не в сети

Зарегистрирован: 01 сен 2014, 08:19
Сообщений: 22
нет. все немного хуже.
запрос от процессора будет обслужен в следующем окне CPU если он пришел во время окна VIDEO.
т.е. даже в самом лучшем случае он должен быть задержан на минимальное время гонок по логической схеме.
можно мосчитать сколько это наносекунд (один вентиль+один тригер ТМ2)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Торможение при обращении к ОЗУ
СообщениеДобавлено: 03 окт 2014, 17:10 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Все равно не до конца понял. Я спрашиваю про окно CPU. Какое оно по размеру? Как я понял, окно видео - 400нс. В это время процессору в память лезть никак не выдет. Но когда эти 400нс проходят, открывается "окно CPU" - какое оно по продолжительности пред следующими 400нс блокировки? Хочется прикинуть шансы попадания именно в это окно.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
cron
Free counters!
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB