User Tag List

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

Тема: Снова о подключении ZX-PC

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    У вас 250 кбит между дисководом и ВГ93 или между ВГ93 и Z80? ) Это 2 большие разницы.
    Это скорость потока данных от ВГ93, под неё уже подстраивается протокол обмена с флопом.
    Приводилось просто как пример для ориентира. Можно вообще к LDIR весь обмен свести, дело лишь в реализации.

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

  3. #2

    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    297
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    Это скорость потока данных от ВГ93, под неё уже подстраивается протокол обмена с флопом.
    Приводилось просто как пример для ориентира. Можно вообще к LDIR весь обмен свести, дело лишь в реализации.
    Это как? Меняет скорость вращения диска чтоль? ) Как-раз скорость чтение диска константна, и она равна 250,500 и прочие кбит, а вот компьютер может читать данные с ВГ как ему удобнее.

    То что 115200 у человека получилось получить только сильно извернувшись и поломав голову и говорит о том что где-то в этих пределах и лежит максимальная скорострельность в операциях, правда организация потока, проверка готовности устройства заметно еще скосят скорость даже при параллельном подключении, еще на таких скоростях у UARTов начинается еррор рейт заметный, значит еще и коррекция ошибок понадобится.

    Кстати для того чтобы успешно работать на шине нужен достаточно быстрый контроллер, чтобы он успевал дергаться.
    Т.е. там порядка 500-700 нс на то чтоб получить прерывание и выставить ответ или просто отреагировать.
    Вот тут интересная статья про эмуляцию дисковода и картриджа на STM32
    https://www.kernelcrash.com/blog/emu...sx/2020/06/14/
    Последний раз редактировалось Kulich; 24.11.2021 в 15:42.

  4. #3

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    908
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    343
    Поблагодарили
    182 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    То что 115200 у человека получилось получить только сильно извернувшись и поломав голову и говорит о том что где-то в этих пределах и лежит максимальная скорострельность в операциях,
    Подождите. На скорпе копирование с карты на карту через SMUC занимает 5 сек целая дискета. В турбе. А это значит около 1.2 мегабита. И причём это сначала чтение, потом запись. А там шина 8 бит.

    А при обмене на 57600 процессор даже не в турбе довольно много ждёт. И по одному биту всё проталкивает. А на 115200 предел возможностей, похоже, для нетурбы. Но это для UART протокола.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

  5. #4

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    компьютер может читать данные с ВГ как ему удобнее
    Это уже если лезть в технические дебри контроллера и флопа. На стандартном обмене скорость фиксированная, не просто же так существуют эти обороты диска в 300, 360 и другие. Частота ВГ определяет скорость записи данных. Спектрум обязан принять/отослать данные в порт ВГ по сигналу готовности, иначе вылетит ошибка. Вот эта стандартная скорость и есть 250 Кбит (5 оборотов в секунду, 6 Кб на дорожке, итого 30 Кбайт).

    Выше уже отписали о копировании дискеты за 5 секунд, что довольно неплохо. Да, с карты на карту, но что мешает реализовать эти скорости для других типов хранения (приема) данных?

  6. #5

    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    297
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    Это уже если лезть в технические дебри контроллера и флопа. На стандартном обмене скорость фиксированная, не просто же так существуют эти обороты диска в 300, 360 и другие. Частота ВГ определяет скорость записи данных. Спектрум обязан принять/отослать данные в порт ВГ по сигналу готовности, иначе вылетит ошибка. Вот эта стандартная скорость и есть 250 Кбит (5 оборотов в секунду, 6 Кб на дорожке, итого 30 Кбайт).

    Выше уже отписали о копировании дискеты за 5 секунд, что довольно неплохо. Да, с карты на карту, но что мешает реализовать эти скорости для других типов хранения (приема) данных?
    Ну для 7 мегагерц там уже веселее я за 3.5 приводил расчет. Кажется я знаю как работает это копирование, без участия памяти вообще, так-как это тактов 28 на байт из которых in/out 20 съедают точно.

    Но вообще это дело десятое, максимальная скорость. Главное чтоб работало=) Я гофернеты в районе 9600 бороздю и не жалуюсь )

  7. #6

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    Кажется я знаю как работает это копирование, без участия памяти вообще, так-как это тактов 28 на байт из которых in/out 20 съедают точно.
    Даже если эту перезапись реализовать сдвигами напрямую из одной карты в другую (по SPI или по полному 4-разрядному интерфейсу SD), то все равно надо много доп.информации передавать каждой из карте для адресации единиц размещения (файловую систему-то она сама по себе не детализирует, а как без ее разбора ?). Но в СМУКе ж и этого нет. Как копировать без участия памяти-то ?
    И как за 5 сек вся дискета - разъясните, а то аж уснуть не могу )

    Что касается предела скорости обмена, тут Kulich действительно прикинул довольно точно.
    Вот такой фрагмент кода читает данные из условного "порта данных" некоей идеализированной железяки, которая в идеальном случае успевает формировать очередной байт данных к каждому новому чтению из порта. После чтения байт сохраняется в буфер в ОЗУ.
    Код:
    	ld hl, srcaddr
    	ld de, length
    	ld bc, portaddr
    loop:	in a, (c)	12T
    	ld (hl), a      7T
    	inc hl          6T
    	dec de          6T
    	jr nz, loop     12T
    На это уходит 43 (то есть даже больше, чем 40) тактов на один цикл (=байт), и это без какой-либо прочей обработки полученных данных и контроля готовности очередных данных перед приемом. 81395 циклов в секунду. Но это "сферический конь в вакууме".
    Если в действительности будет даже вдвое меньше, то ~40Кбайт/с при байтном обмене по 8-разрядной шине уже было бы неплохим результатом (~16 сек суммарное время на получение данных всех фрагментов TRD от сервера + обычное суммарное время записи из памяти на флоп с ожиданием позиционирования).
    Если бы такое удалось, уже классно. Все зависит действительно от того, насколько хорошо удастся оптимизировать обработку прерывания при обращении к ESP на чтение. Для нас, начинающих, та еще задачка )

  8. #7

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от valerium Посмотреть сообщение
    Вот такой фрагмент кода читает данные из условного "порта данных"
    Команда inc de никак не влияет на флаги, но это не главное

    Цитата Сообщение от valerium
    это "сферический конь в вакууме"
    Сферический конь без проверки готовности данных состоит из одной команды inir/otir, это 21 такт =) Если же раскранчить код в памяти (кучу команд ini/outi), то вообще 16 тактов.

    Этот пользователь поблагодарил reddie за это полезное сообщение:

    valerium(24.11.2021)

  9. #8

    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    297
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "И как за 5 сек вся дискета - разъясните, а то аж уснуть не могу )"
    Как 5 секунд дискета не знаю, но без памяти просто, in из порта и следом out в порт эти же данные. Но если честно я абсолютно не знаю как работает IDE, наверное там нужно еще выбирать откуда и куда)

  10. #9

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    "И как за 5 сек вся дискета - разъясните, а то аж уснуть не могу )"
    Как 5 секунд дискета не знаю, но без памяти просто, in из порта и следом out в порт эти же данные. Но если честно я абсолютно не знаю как работает IDE, наверное там нужно еще выбирать откуда и куда)
    Из какого и в какой порт ? Там все непросто хотя бы потому, что IDE 16-разрядный и процессор одним движением эти данные обработать в любом случае не может.
    Еще у него записью в отдельные регистры адресуется каждый сектор (или LBA-блок, в зависимости от режима адресации), а внутри него есть еще таблица разделов, внутри которых лежат структуры файловых систем. Так что одно IDE-устройство со своей файловой системы корректно отдать данные в файловую систему другого устройства просто не сможет, нужен промежуточный интеллект )

    Upd: про разделы, наверное, гоню, это ж не esxdos, который работает со всеми фишками писишных устройств, наверное тут данные организованы проще. Но структуры, контролирующие размещение файлов, точно никто не отменит )

    - - - Добавлено - - -

    Цитата Сообщение от reddie Посмотреть сообщение
    Команда inc de никак не влияет на флаги, но это не главное
    Вариант был мало того, что неоптимальный, так еще и неправильный. Лет 20 почти ничего под Z80 не писал - похоже и начинать уже не надо )
    Сферический конь без проверки готовности данных состоит из одной команды inir/otir, это 21 такт =) Если же раскранчить код в памяти (кучу команд ini/outi), то вообще 16 тактов.
    Красиво. Респект )
    Последний раз редактировалось valerium; 24.11.2021 в 22:07.

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

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

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

Похожие темы

  1. Ответов: 149
    Последнее: 13.12.2014, 12:03
  2. Ответов: 9
    Последнее: 06.09.2012, 22:15
  3. Нужна помощь в подключении к 32ТЦ309Д
    от axbob32 в разделе Изображение
    Ответов: 17
    Последнее: 11.05.2012, 21:30
  4. И еще раз о подключении дисковода...
    от Zloy в разделе Внешние накопители
    Ответов: 28
    Последнее: 23.12.2007, 00:35
  5. И снова о подключении дисковода к Speccy
    от ILoveSpeccy в разделе Внешние накопители
    Ответов: 8
    Последнее: 26.07.2007, 20:21

Ваши права

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