User Tag List

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

Тема: Простой флэш-диск от 16 мб + быстрый SPI для современной периферии

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

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

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,235
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    995
    Поблагодарили
    642 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    если делается проброс CS ППА F5 и чтение данных идет каждые 19 тактов (mov a,m; stax d; inx D), то Орион может запросто молотить на 20 МГц.
    По коду "всё печальнее", у меня например в онлайне проверяется возможный выход за границу банка, так что далеко не так быстро ПО читает данные.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Если у Ориона выше 40 МГц - надо увеличивать интервалы в программе, чтобы не превышать эти 1027 кб/с.
    Высокоскоростная версия Ориона будет стартовать на дефолтных 2,5 МГц и будет иметь возможность программно задавать клок ЦП. Если ROM-диск рассматривать только в качестве загрузчика, то по идее можно не заморачиваться возможностью работы на 40 МГц. На больших скоростях уже полезут ограничения самих ПЗУшек скорее всего.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    По коду "всё печальнее", у меня например в онлайне проверяется возможный выход за границу банка, так что далеко не так быстро ПО читает данные.
    Ну если ПО читает не быстро, значит и с Орионом на 40 МГц будет флэш-диск работать
    Вообще для флэш-диска в режиме прямого чтения проверять банк не понадобится, там же автоинкремент. Свои соображения по эффективной организации циклов я дополнительно выложил тут: http://zvzd3d.ru/Orion128/OrionDiskNiky.html#YaCikli (надо обновить страницу). Конечно, это больше актуально для быстрого чтения.

    Посмотрел Вашу реализацию чтения ROM-диска - вижу SHLD и LDA уже раснесены. При желании код можно ускорить. Цикл делать без "mov a,c; ora b". И проверку выхода за банк - делать вне цикла. Пусть HL - начальный адрес чтения, а BC - длина. Тогда если ~HL > BC, то переключения банка не нужно. Иначе читаем сперва (~HL+1) байт, переключаем банк, читаем остаток.


    Цитата Сообщение от Denn Посмотреть сообщение
    Высокоскоростная версия Ориона будет стартовать на дефолтных 2,5 МГц и будет иметь возможность программно задавать клок ЦП. Если ROM-диск рассматривать только в качестве загрузчика, то по идее можно не заморачиваться возможностью работы на 40 МГц. На больших скоростях уже полезут ограничения самих ПЗУшек скорее всего.
    На чем же будет сделан Орион на 40 МГц?

  4. #3

    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    814
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    60 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    10, 20, 40 МГц... Вот десятку вроде сделали: по мегагерцам вдули в 4 раза больше, а на выхлопе всего 3.5 Маха... Под двадцатку даже и процик существует Z84C0020, а в реале Ориончика такого ПОКА нет... А под сороковку какой процик планируется? Хренсобаки, тьфу, Кавасаки KL5C8400C только 33 МГц позволяет... Хотя наш комрад утверждает, что гонится в лёгкую.

    RyazanNik, предложение: а если взять PIC/dsPIC с Parallel Master Port (PMP) и его тулить не к ВВ55, а вместо ВВ55 на шину, и при необходимости вэйтить основной процик. Уж тогда всё что угодно можно прикрутить. Как тебе идейка?
    Последний раз редактировалось LeoN65816; 11.09.2020 в 01:19.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  5. #4

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

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    RyazanNik, предложение: а если взять PIC/dsPIC с Parallel Master Port (PMP) и его тулить не к ВВ55, а вместо ВВ55 на шину, и при необходимости вэйтить основной процик. Уж тогда всё что угодно можно прикрутить. Как тебе идейка?
    А Орион что, можно "вэйтить"? Это же какой то Радио-РК86 тогда получается... А если несколько абонентов захотят вэйтить? Конечно, вэйтить понадобится в весьма редких случаях, когда ROM-диск на самом деле не успевает (что легко распознать и выставить соответствующий сигнал).

    Идея на первый взгляд чертовски хороша: выкидывается ВВ55, а вместо неё подключается Pic, который эмулирует огромный ROM-диск и имеет при этом кучу реально свободных ног для действительно нужной внешней переферии (АЦП, таймеры, 2 SPI чтобы можно было гнать с SD-карты на звук ЦАП прямым потоком, I2C всякие). Красота!

    На самом деле ведомый Parallel Master Port в dsPIC это всего лишь 4 регистра-защелки. Т.е. отличий от ВВ55 почти никаких. Чисто экономия ног у МК.
    Увы, не думаю, что кто-то захочет выдирать ВВ55 из ретро-сборки или плату переразводить... Я лично в своём любимом стареньком Орионе ничего кардинального трогать не готов, если только что-то внешнее подключать. Для высокоскоростного режима флэш-диска уже достаточно проброса одной линии CS от ППА. Да и ожидание нужно только для эмуляции ROM-диска выше 5 МГц, а в прямом режиме, как выясняется, даже на 40 МГц софт 1 мб/с с трудом читает...


    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    10, 20, 40 МГц... Вот десятку вроде сделали: по мегагерцам вдули в 4 раза больше, а на выхлопе всего 3.5 Маха... Под двадцатку даже и процик существует Z84C0020, а в реале Ориончика такого ПОКА нет... А под сороковку какой процик планируется? Хренсобаки.
    Это получается видеовыход скорость портит?
    Ну понятно, что скоростные Орионы это такая проблема, что тут не до флэш-диска...

  6. #5

    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    814
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    60 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    А если несколько абонентов захотят вэйтить?
    А в чем проблема? Каждому абоненту дать по морде октрытому коллектору/стоку!

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Идея на первый взгляд чертовски хороша: выкидывается ВВ55, а вместо неё подключается Pic, который эмулирует огромный ROM-диск и имеет при этом кучу реально свободных ног для действительно нужной внешней переферии (АЦП, таймеры, 2 SPI чтобы можно было гнать с SD-карты на звук ЦАП прямым потоком, I2C всякие). Красота!
    А то!!!

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    На самом деле ведомый Parallel Master Port в dsPIC это всего лишь 4 регистра-защелки.
    Адресуемый ведомый порт с четыремя адресами. Программно-аппаратная эмуляция ВВ55 и программно-аппаратная обработка смены адреса ROM-диска! А ведь есть ещё автоинкремент и FIFO!

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Увы, не думаю, что кто-то захочет выдирать ВВ55 из ретро-сборки или плату переразводить...
    Выдёргиваешь из цанговой панельки ВВ55, и втыкаешь в эту же панельку свою платку с dsPIC.

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Это получается видеовыход скорость портит?
    Синхронное расшаривание одной памяти на два потребителя (процик и видеоконтроллер).

    Цитата Сообщение от Denn Посмотреть сообщение
    Имхо, для Ориона потолок - 20 МГц. Оно и достаточно.
    У-у-у-у-у... Чем больше имеешь - тем ещё больше хочется... Вот увидишь!

    Цитата Сообщение от Denn Посмотреть сообщение
    Выше уже нужно архитектурно полностью пересматривать, это будет другой комп.
    Посмотри на пример из моей подписи. Мой АГАТик остался АРХИТЕКТУРНО тем же самым АГАТиком, и для программ, и для программеров, только процик теперь совершенно не зависит от видеоконтроллера - можно гнать его как угодно, и плюс новые няшки появились.

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Уж очень симпатичный вариант...
    А то!

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Ну если старый софт работать будет - значит формально Орион.
    Йа-йа! Архитектурно это тот же Ориончик!

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Только видеосистема на ПЛИС - совсем уже не орион в плане простоты...
    А при чём тут ПЛИС? Смотри на пример в подписи.
    Последний раз редактировалось LeoN65816; 12.09.2020 в 00:13.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  7. #6

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

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Очень симпатичный вариант надо использовать
    Посмотрел более детально: печаль, dsPic33 МК с требуемым Parallel Master Port стоят по 600р и в непаябельных корпусах (хотя нашпигованы интерфейсами они знатно, это плюс).
    Но самое плохое: вряд ли одна прошивка будет успевать интеллектуально выставлять сигнал Wait даже для Ориона на 20 МГц.
    Тут нужна дополнительная (дискретная?) логика: если была запись в F5, то следующее чтение F5 надо задержать, пока МК не подтвердит готовность данных. Но тогда не особо нужен dsPic, это же можно легко сделать с ППА F5 и МК, какой сейчас...
    В этом плане предложенный флэш-диск всё же некий оптимум простоты...


    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    А ведь есть ещё автоинкремент и FIFO!
    Что-то не вижу в slave-режиме ни FIFO, ни автоинкремента. МК тупо защелкивают и флаги выставляет, а прошивка пусть сама разбирается. Но даже на 100MIPS при тактовой Ориона в 20 МГц времени прошивке не хватает.


    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Адресуемый ведомый порт с четыремя адресами. Программно-аппаратная эмуляция ВВ55 и программно-аппаратная обработка смены адреса ROM-диска!
    Ну это понятно. Хотя я бы предпочел более амбициозный вариант - замену не одного абонента, а сразу нескольких. Но на dsPic33 с их PMP это не реализуемо...


    В этой связи в голове крутится мысль: взять быстрый проц (Z84C0020 или даже KL5C8400C), прилепить память - и МК к системной шине. Чтобы этот МК с wait заменял всю периферию. Получится некий быстрый отладочный Орион. Разве что без дисплея (хотя остановив проц всего на 5 мс можно переслать в IBM-PC содержимое всей видеопамяти).

    Только я совсем забыл, когда выдавать wait, можно ли, когда чтение/запись уже идёт, или же надо слово состояния проца ловить...


    Цитата Сообщение от Denn Посмотреть сообщение
    Никаких ПЛИС, конечно! Но "видеокарта" - отдельным асинхронным устройством, чтобы для основной МПС никаких вэйтов и привязок к синхрогенератору видеосистемы.
    Вижу дело сложное, форум гудит...


    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    А при чём тут ПЛИС? Смотри на пример в подписи.
    Нихрена не понял, как конкретно сделано. Впрочем, это не моя тема...

  8. #7

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,235
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    995
    Поблагодарили
    642 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Ну если ПО читает не быстро, значит и с Орионом на 40 МГц будет флэш-диск работать
    Значит вопрос можно считать закрытым.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    При желании код можно ускорить.
    Я когда-то упирался по части ускорения кода чтения ПЗУ, но потом приоритет сменился в сторону компактности кода, а по скорости особой разницы не заметил.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    проверку выхода за банк - делать вне цикла... переключаем банк, читаем остаток.
    Тоже об этом подумал. Но в данном случае это не требуется, т.к. заметно будет лишь только на больших файлах.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    На чем же будет сделан Орион на 40 МГц?
    Вот на этом - http://www.cpu-world.com/CPUs/Z80/Ka...KL5C8400C.html

    С небольшим разгоном: 33 -> 40 МГц

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

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Увы, не думаю, что кто-то захочет выдирать ВВ55 из ретро-сборки или плату переразводить...
    Все расширения лучше делать в пространстве F7xx, а родное пусть действительно будет в первозданном виде.

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

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Под двадцатку даже и процик существует Z84C0020, а в реале Ориончика такого ПОКА нет... А под сороковку какой процик планируется? Хренсобаки, тьфу, Кавасаки KL5C8400C только 33 МГц позволяет...
    Имхо, для Ориона потолок - 20 МГц. Оно и достаточно. Выше уже нужно архитектурно полностью пересматривать, это будет другой комп.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  9. #8

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

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Я когда-то упирался по части ускорения кода чтения ПЗУ, но потом приоритет сменился в сторону компактности кода, а по скорости особой разницы не заметил.
    Сейчас в DsDos чтение ROM - 80т на байт. а классический цикл - 61 такт на байт. Тело цикла - всего 46 тактов на байт, и если читать по 4 байта, то будет 50 тактов на байт. Итого можно ускорить в 1.3 раз просто и в 1.6 раза - потеряв компактность кода (ну как потеряв: лишние 27 байт; для f3xx не желательно, но можно по страницам распихать).

    Цитата Сообщение от Denn Посмотреть сообщение
    заметно будет лишь только на больших файлах.
    На самом деле многое будет работать пропорционально быстрее. Для Ориона файл на 8 кб уже большой. Какой-нибудь Kort$ на 32 кб грузится целую секунду. Если процедура чтения ROM у Вас универсальная и используется везде, то есть не плохая мотивания оптимизировать её по-максимуму.
    Конечно, 1.3 раза не много - но только потому, что обычное чтение ПЗУ не быстрое (тело 46 тактов). А если читается напрямую "флэш-диск" или Ваш быстрый RAM7, где тело цикла 19 тактов? Тут терять 34 такта на организацию цикла не хорошо...


    Цитата Сообщение от Denn Посмотреть сообщение
    Все расширения лучше делать в пространстве F7xx, а родное пусть действительно будет в первозданном виде.
    Не, тогда как раз придётся подключаться к системной шине. А мне пока боязно. "Флэш-диск" на F5 этого не требует, хотя по скорости оказывается не хуже (при пробросе только CS ППА F5).
    Если уж подключаться к шине - то как сказал LeoN65816, вместо ППА F5. Тогда будет 100% рабочий на любой частоте Ориона большой ROM-диск (с умным Wait выше 5 МГц) + возможноть подключения современной переферии. Уж очень симпатичный вариант...


    Цитата Сообщение от Denn Посмотреть сообщение
    Имхо, для Ориона потолок - 20 МГц. Оно и достаточно. Выше уже нужно архитектурно полностью пересматривать, это будет другой комп.
    Ну если старый софт работать будет - значит формально Орион. Только видеосистема на ПЛИС - совсем уже не орион в плане простоты...

  10. #9

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,235
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    995
    Поблагодарили
    642 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Итого можно ускорить в 1.3 раз
    Крайний концепт DSDOS с упором на работу с RAM-накопителями, НЖМД и виртуальным диском. Плюс место для кода "кончилось".
    Поэтому ROM-диск только для загрузки ОС и мелких системных утилит. В 1,3 раза - слабая мотивация.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    и в 1.6 раза - потеряв компактность кода (ну как потеряв: лишние 27 байт; для f3xx не желательно, но можно по страницам распихать).
    С непереключаемым ОЗУ вообще всё очень жёстко. В новом поколении ОС будет немножко полегче, постараюсь (чисто для галочки) оптимизировать процедуры чтения из ROM-диска.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Если процедура чтения ROM у Вас универсальная и используется везде, то есть не плохая мотивания оптимизировать её по-максимуму... А если читается напрямую "флэш-диск" или Ваш быстрый RAM7
    RAM7 обслуживает совершенно другой код, там упор на скорость максимальный.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Не, тогда как раз придётся подключаться к системной шине. А мне пока боязно...
    Если уж подключаться к шине - то как сказал LeoN65816, вместо ППА F5. Тогда будет 100% рабочий на любой частоте Ориона большой ROM-диск (с умным Wait выше 5 МГц) + возможноть подключения современной переферии. Уж очень симпатичный вариант...
    Очень симпатичный вариант надо использовать


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Только видеосистема на ПЛИС - совсем уже не орион в плане простоты...
    Никаких ПЛИС, конечно! Но "видеокарта" - отдельным асинхронным устройством, чтобы для основной МПС никаких вэйтов и привязок к синхрогенератору видеосистемы.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

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

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

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

Похожие темы

  1. Ответов: 37
    Последнее: 06.12.2017, 01:24
  2. Немного периферии для Спектрума
    от ArtemKuchin в разделе Барахолка (архив)
    Ответов: 22
    Последнее: 04.05.2012, 13:22
  3. Картинки с флэш-анимацией.
    от moroz1999 в разделе Графика
    Ответов: 7
    Последнее: 29.08.2009, 19:10
  4. простой скрипт для написания хелпов
    от jim в разделе Программирование
    Ответов: 2
    Последнее: 09.04.2007, 14:33

Ваши права

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