User Tag List

Страница 53 из 54 ПерваяПервая ... 495051525354 ПоследняяПоследняя
Показано с 521 по 530 из 585

Тема: Компьютер "Aleste 520EX"

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

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

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Он изначально не предназначен для низкоуровневой эмуляции аппаратных устройств через NMI. Его основная задача иная — это организация надежного и эффективного обмена данными между пользовательской программой, ядром и драйверами.

    Главная ценность такого подхода в работе с драйверами устройств, которые требуют неопределённого времени на выполнение операции. Вместо того, чтобы висеть в циклах ожидания, пока устройство выставит некий "бит готовности", ПО может просто запросить выполнение операции через syscall и немедленно продолжить работу (асинхронный режим) или быть заблокированным до её завершения (синхронный режим). Это позволяет централизованно обслуживать все устройства в обработчиках прерываний (ISR), полностью избегая активного ожидания.

    Таким образом, наш syscall решает задачи более высокого уровня — не имитация "железа", а создание отказоустойчивой и эффективной системы управления всеми устройствами в целом. Это иная, но не менее мощная архитектурная концепция.

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

    Цитата Сообщение от RW9UAO Посмотреть сообщение
    оверкилл какой-то.
    окай. железная алеста не была 100% совместима с амстрадом. это стоит поправить.
    Вы абсолютно правы, и это следствие работы без полной документации в свое время. В итоге получились следующие расхождения с оригинальной платформой:

    • Система прерываний: Не была реализована поддержка Interrupt generation control.

    • Расширение памяти: Его пришлось проектировать практически с нуля. По счастливой случайности результат оказался схож с расширением от Dk'tronics, которое, если быть точным, и само не является на 100% каноническим. Насколько я помню, в одной из версий РЕ³ даже была выпущена корректировка на этот счёт.

    • Цвет: Компоненты цвета у CPC имеют яркость 0, 50 и 100% (но не у Алесты). Впрочем, ретро-компьютеры вообще не проектировались с оглядкой на точную цветопередачу (color rendition).

    • Порты: Принтерный порт был реализован иным способом.

    • Клавиатура: Перекодировка клавиатуры действительно теряет смысл, когда в распоряжении есть качественные механические кнопки, позволяющие реализовать более простую и эффективную схему.

    • Периферия: Такие вещи, как часы (ВИ53, ВВ51), HIGHZ, FUTURE — да, их тоже лучше не реализовывать или переосмыслить.

    И, как вы верно заметили, все эти моменты действительно стоит исправить для достижения большей аутентичности. Я это только приветствую.

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

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sherlock Посмотреть сообщение
    следующие расхождения с оригинальной платформой:
    Еще неполное совпадение скорости процессора (предположительно торможение не на 100% совпадает), какой-то амстрадовский тест и демки на реале запускал Дмитрий2012.

    Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    RW9UAO(10.10.2025), Sherlock(10.10.2025)

  4. #3

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Еще неполное совпадение скорости процессора (предположительно торможение не на 100% совпадает), какой-то амстрадовский тест и демки на реале запускал Дмитрий2012.
    Я помню провал этого теста. С большой долей вероятности, корень проблемы лежит не в несоответствии тактовой частоты, а в тонкостях работы системы прерываний.

    На оригинальном железе демки и тесты часто полагаются на прерывания для точного замера времени и синхронизации процессов (например, отрисовки кадров или работы со звуком). Если временны́е характеристики прерываний в эмуляции/реализации хотя бы немного отличаются от оригинальных — это мгновенно приводит к рассинхронизации и сбоям. Таким образом, ключ к решению, вероятно, лежит в тонкой настройке механизма прерываний. Не смотря на то, что Interrupt generation control не поддержан, вряд ли его отсутствие приводит к провалу теста -- но не исключено.
    Последний раз редактировалось Sherlock; 10.10.2025 в 19:38.

  5. #4

    Регистрация
    19.07.2017
    Адрес
    г. Кемерово
    Сообщений
    47
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    26
    Поблагодарили
    12 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    оверкилл какой-то.
    окай. железная алеста не была 100% совместима с амстрадом. это стоит поправить. в проекте ФПГА амстрада есть контроллер прерываний, но в оригинальной машине его тоже не было.

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

    Sherlock(10.10.2025)

  6. #5

    Регистрация
    19.07.2017
    Адрес
    г. Кемерово
    Сообщений
    47
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    26
    Поблагодарили
    12 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ладно ВИ53 и УАРТ, но в часах вы храните настройки. БИОС алесты при этом будет дурковать. проверено.

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

    Sherlock(10.10.2025)

  7. #6

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RW9UAO Посмотреть сообщение
    ладно ВИ53 и УАРТ, но в часах вы храните настройки. БИОС алесты при этом будет дурковать. проверено.
    Вы правы, это действительно так. Однако загрузчик, который единственный использует часы, — невероятно простой, и его легко пропатчить.

    Это открывает два пути:

    • Установка часов: Можно использовать компактный чип на I2C, если возникнет необходимость в реальных часах.
    • Полный отказ от часов: Вместо этого в FPGA можно будет просто загружать крошечный файл с готовыми настройками, которые нужны загрузчику.
    • Полный отказ от часов и настроек: Вместо этого всегда использовать константные параметры которые нужны загрузчику.

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

  8. #7

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Работаю над арбитром памяти. Мной обнаружены следующие моменты, которые могут помочь другим разработчикам в понимании проблемы совместимости по скорости процессора между Алестой и Amstrad CPC.

    Арбитраж памяти в Алесте:

    • Память работает на частоте 4 МГц.
    • Так как шина памяти 16-битная, видеоконтроллеру для чтения двух байтов за раз достаточно одного доступа.
    • Арбитр чередует доступы: каждый второй такт (частотой 4 МГц) жестко отдается видеоконтроллеру.
    • Теоретически процессор может получить доступ к памяти в оставшемся такте. Фактически, процессор может работать с памятью с эффективной частотой до 2 МГц, используя одно окно доступа за каждый полный цикл.

    Арбитраж памяти в Amstrad CPC:

    • Основной цикл длится 16 тактов частоты 16 МГц (что эквивалентно 4 тактам частоты 4 МГц).
    • Первые 8 тактов (16 МГц) жестко отданы под доступ видеоконтроллера. Для чтения двух байт используется режим страничного доступа (Burst Mode) DRAM: один раз выставляется сигнал /RAS и два раза сигнал /CAS.
    • Вторые 8 тактов (16 МГц) отданы под возможный доступ процессора.
    • В результате процессор также имеет эффективную частоту доступа к памяти 2 МГц, но это выглядит как одно окно размером в четыре такта (4 МГц), а не два отдельных окна, как в Алесте.

    Вывод для совместимости:

    Различие в структуре арбитражных окон (одно большое окно в CPC против чередования тактов в Алесте) делает Алесту в среднем несколько быстрее. Это неизбежно приводит к расхождению в производительности в строго зависящем от таймингов коде.

    Для достижения полной совместимости с оригинальным CPC арбитр памяти должен быть скорректирован и эмулировать не только частоту, но и структуру доступа оригинала — то есть, использовать одно процессорное окно за цикл, а не чередование на каждом такте.

    Эти 3 пользователя(ей) поблагодарили Sherlock за это полезное сообщение:

    Willy(30.10.2025), yevrowl(14.12.2025), Копейкин(30.10.2025)

  9. #8

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Видеоконтроллер полностью закончен и отлажен


    Изображение ниже в формате 320x200-8bpp-4096c (64КБ)


    SDRAM Controller

    Работает на частоте 108МГц использует burst режим читает по два слова 16 бит за один доступ

    Memory Arbiter

    Работает на частоте 108МГц и обрабатывает 16 битные данные. Коммутирует шину между системной шиной, видео-контроллером и графическим сопроцессором. Как и в оригинальной Aleste EX эта подсистема полностью 16 битная.

    System Arbiter

    Работает на частоте 54МГц и обрабатывает 8 битные данные. То есть вся остальная часть всей системы полностью 8-битная.

    Video Buffer

    Двойной 32 битный буфер видеоданных. Превращает 32 слова в поток байтов для генератора пикселов.

    Pixel Pipeline Unit

    Генерирует 8-битные пиксели и потока байтов. Поддерживает оригинальные CPC кодировки и линейные, которые планировались на Alexte EX, но так и небыли реализованы. Это режимы более простой упаковки. Например для 16 цветного режима первые два пикселя [7:4][3:0], а для 4 цветового [7:6],[5:4],[3:2],[1:0]

    Color Paletter

    Конвертирует 8 бит в 12 бит. Для этого имеет таблицу 512 байт. При заполнении таблицы (как и в Alesta EX) данные могут транслироваться в 12 битный формат. Поддерживаются форматы:

    12 bit
    CPC
    MSX2+ RGB
    MSX2+ YJK

    Также палитра имеет автоинкремент и модификатор цвета для использования банков цвета

    Scan Doubler

    Конвертирует одну 12-bit на пиксел строку в две HDMI строки

    HDMI Controller

    Сериализует данные в HDMI интерфейс, и формирует основной кадровый и строчный темп в системе.

    UART Bridge

    Отладочное устройство которое позволяет управлять системой с хост компьютера. Оно осуществляет доступ к Wishbone шине через последовательный интерфейс.

    6845 Mod

    Модифицированная версия контроллера которая наряду со стандартной версией имеет следующее:

    Имеет дополнительные регистры управления которые позволяют: адресоваться к 24 битной памяти, изменять bpp, изменять скорость потока данных,а также использовать линейный режим. Последнее было одной из нереализованных идей в EX. В этом адрес по окончании первой строки переходит во вторую. Кроме этого контроллер поддерживает burst, для этого он меняет адрес через +2, а также может это делать 2 раза в символе.

    Итоговый список режимов стал такой: cpc режимы и linear. Вторые разбиты на три группы 16КБ страница, 32КБ страница и 64КБ страница. Теоретически можно использовать 128КБ но не используется.

    cpc: mode0, mode1, mode2
    linear: 16KB (4bpp,2bpp,1bpp), 32KB (8bpp-160x200, 4bpp-320x200, 2bpp-640x200), 64KB (8bpp-320x200, 4bpp-640x200)

    Синхронизация

    Wishbone работает на частоте 54МГц
    Видео-подсистема на частоте 27МГц
    Память на частоте 108МГц

    Основной цикл состоит из 16 тактов 27МГц. У некоторых тактов есть назначение:

    T04 - Sync 1 запуск цикл доступа в память для получения 32 бит. (и загрузка в выходной буфер если необходимо)
    T12 - Sync 2 загрузка 32 бит данных из памяти в выходной буфер (и запуск нового доступа если необходимо)
    T15 - Конец символа

    В зависимости от режима пиксель clk формируется в T{0,2,4,6,8,10,12,14} тактах, в самом медленном случае T{0,4,8,12}

    В целом диаграмма подобна то которая используется в Myst/Myster для CPC.

    Следующий этап

    Процессор и периферия.
    Последний раз редактировалось Sherlock; 09.11.2025 в 20:30.

    Эти 6 пользователя(ей) поблагодарили Sherlock за это полезное сообщение:

    breeze(09.11.2025), CityAceE(09.11.2025), CodeMaster(09.11.2025), RW9UAO(09.11.2025), yevrowl(14.12.2025), Копейкин(09.11.2025)

  10. #9

    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,877
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    81 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sherlock Посмотреть сообщение
    Видеоконтроллер полностью закончен и отлажен
    А на базе чего вообще делается проект? Это какая-то готовая плата или собственная разработка?

  11. #10

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от breeze Посмотреть сообщение
    А на базе чего вообще делается проект? Это какая-то готовая плата или собственная разработка?
    Отличный вопрос.

    В качестве базовой FPGA была выбрана микросхема ECP5 от компании Lattice. Альтернативным вариантом рассматривался чип от Gowin. Ключевым аргументом в пользу ECP5 стала поддержка открытых инструментов разработки: Verilator, Yosys и NextPNR.

    В качестве конструктива решено использовать SODIMM-модуль, на котором размещаются сама FPGA, память SDRAM и FLASH для прошивки. Для этих целей хорошо подходит плата ICE Sugar Pro.

    Была разработана материнская плата XiAletse, однако в связи с известными событиями проект пришлось приостановить. Как это часто бывает, со временем подход пересмотрели в сторону снижения стоимости и оптимизации.

    В итоге появился проект FPGA LX, который стал символом минимализма — напоминанием о том, что разработчик должен ограничивать свои «хотелки» на каждом шагу. В то же время Xi олицетворял максимализм и стремление к идеальной, но избыточной реализации.

    После завершения работы над FPGA-ядром будет спроектирована новая печатная плата — это будет сильно оптимизированная версия Xi.

    Планируемые изменения:

    • Wi-Fi-чип и аналогичные модули будут удалены с платы — вместо них появится PMod-разъём для подключения внешних периферийных устройств.
    • Legacy Edge-коннекторы будут полностью убраны — они занимают много места, недостаточно надёжны, а при текущих ценах на память их необходимость сошла на нет.
    • Встроенный J-Link отладочный интерфейс, вероятно, также будет удалён.
    • MIDI-разъёмы заменят на Mini DIN — более компактный и современный вариант.
    • ЦАП и АЦП будут заменены на более доступные коммерческие аналоги.
    • Звуковая шина станет основной, а PCIe-разъёмы уступят место компактным 40-контактным прямоугольным коннекторам.
    • Микроконтроллер будет заменён на более дешёвую модель (без чрезмерного удешевления — разница составит несколько долларов).
    • Аудиоразъём, вероятно, будет заменён на Mini-JACK.
    • VGA, вероятно, будет удален.
    • Габариты платы будут уменьшены.

    Для простоты понимания левая часть платы будет удалена, а на правой компоненты заменены по принципу меньше, дешевле -> лучше.

    Последний раз редактировалось Sherlock; 10.11.2025 в 12:24.

    Эти 3 пользователя(ей) поблагодарили Sherlock за это полезное сообщение:

    Radon17(13.11.2025), wiktors75(16.11.2025), Willy(14.12.2025)

Страница 53 из 54 ПерваяПервая ... 495051525354 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 1076
    Последнее: 11.05.2022, 06:59
  2. Ответов: 0
    Последнее: 15.08.2010, 14:38
  3. Ответов: 27
    Последнее: 19.12.2009, 18:49
  4. Куплю компьютер Aleste 520EX (Алеста)
    от Nickolas в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 23.10.2009, 05:06
  5. Ответов: 0
    Последнее: 26.06.2005, 11:52

Ваши права

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