Важная информация

User Tag List

Страница 17 из 18 ПерваяПервая ... 131415161718 ПоследняяПоследняя
Показано с 161 по 170 из 172

Тема: A давайте разработаем собственный Z80 на VHDL.

  1. #161
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну я вообще-то совсем другой аспект его архитектуры имел ввиду. (абстрагированность фронтэндов от архитектуры target-а). Впрочем адресация также в общем-то часть этого принципа.
    из этой самой архитектуры следует только то что она не рассматривает проблему ограниченности адресуемого пространства совсем, ну т.е. подразумевается что есть пространство адресов которого ХВАТАЕТ (т.е. подразумевается что оно бесконечное???)
    Я бы не сказал так. Скорее LLVM оставляет вопрос реализации адресного пространства полностью на усмотрение разработчика бэкенда. В частности хотя LLVM IR имеет тип "pointer" (указатель), но не допускает арифметики с указателями (иначе говоря, он ничего не знает и не зависит от линейности или иных свойств адресного пространства), вместо нее имеются инструкции вроде getelementptr (которые позволяют обойтись без этой самой адресной/указательной арифметики). Плюс указатели могут ссылаться на разные адресные пространства.

    Т.е. даже обычную страничную адресацию не особо сложно реализовать (вернее, правильнее сказать, заюзать страничную адресацию имеющуюся в существующем железе), причем потенциально более чем одним способом. (вопрос в выборе/поиске оптимума)

    Вообще LLVM - штука крайне гибкая в плане адаптации к любым архитектурам. Грубо говоря он дает разработчикам бэкендов набор инструментов оптимизированных для типичных современных процессоров (да, желательно с большим кол-вом регистров и большим линейным адресным пространством, тогда удастся имеющиеся уже инструменты заюзать максмимально, меньше доделывать придется), но что и как из этого использовать (или нет) - практически полностью на усмотрение разработчика, если что-то не очень подходит для архитектуры назначения (target), ничто не мешает доработать или сделать какие-то собственные элементы. (к примеру, скажем, register allocator учитывающий альтернативные регистры Z80 или тот же механизм paged-адресации) Вон даже javascript очень успешно используется в качестве "процессора" (проект emscripten), хотя, очевидно, там вообще нет никакого ни "адресного пространства", ни "регистров" в терминологии используемой для микропроцессоров.

    Да, конечно, у некоторых фронтэндов (вроде clang, С/С++ компилятора) есть собственные предположения насчет линейности адресного пространства, тем не менее, такие фронтэнды все равно можно будет использовать без доработок или с минимальными доработками. Скажем, если бэкенд реализует страничную адресацию и таким образом "скрывает" нелинейность адресного пространства от фронтендов, нужно будет просто иметь ввиду что структурами, размер которых сравним с или превышает размер страниц, не стоит злоупотреблять, чтоб не заставлять бэкенд генерировать супер-неэффективный код.
    Последний раз редактировалось mastermind; 20.12.2012 в 09:30.

  2. #162
    Junior Аватар для Sameone
    Регистрация
    30.04.2010
    Адрес
    Харцызск, Донецкая область, Украина
    Сообщений
    24
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от specorg Посмотреть сообщение
    Битовая карта будет своего рода указателем из каких страниц складывается (путём склейки) адресное пространство процесса. Нужно будет в процессе обработки команд и операций с памятью учитывать эту карту.

    Получается что страницы процесса могут быть где угодно в памяти и с разрывом. Единственный минус такого подхода, что страницы памяти должны идти последовательно, можно с разрывом, поскольку битовая карта используется для склейки адресного пространства. Помочь в этом случае может "умное" выделение страниц, не допускающее нарушение последовательности размещение страниц процесса в памяти.
    Если страницы будут идти последовательно - то память программе надо будет выделять сразу по максимуму. Это не есть гут (представь себе, что ИЕ при запуске сразу резервирует место под полсотни вкладок с ютуба, хотя ты в 99% случаев открываешь только страницы поиска и почту. Чтобы сделать возможным динамическое перераспределение памяти, следует потратить больше ресурсов на поддержку карты распределения.
    Именно: иметь список ИД процессов с указанием номера первой физической страницы памяти, а также иметь список страниц памяти, содержащий для каждой страницы один-единственный элемент - номер следующей страицы. Или 0, если это последняя выделенная страница памяти. При выделении кванта времени для очередного процесса ОС просто "суёт" процессору в специальный регистр ИД процесса. Просто и эффективно.
    Цитата Сообщение от specorg Посмотреть сообщение
    если не указать другому процессу, что такая же физическая страница (или несколько) тоже принадлежит ему - таким образом можно вызывать функции из DLL или ПЗУ например
    ИМХО - так делать не надо, это прямая дорога к dll-hell. Динамическая библиотека - это разделяемый ресурс, для управления которым и предназначена ОС. Т. е. DLL должна лежать в принадлежащей ОСИ области памяти, а приложения должны выставлять запрос на выполнение библиотечных функций. Т. е. процессор должен, как минимум, поддерживать разделение памяти на 2 области (кольца, в терминологии ИБМ) - память ОС и память приложений.

  3. #163
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от WingLion Посмотреть сообщение
    Короче, своя рубашка ближе к телу... поэтому будет свой процессор без попыток повторения Кота-В-Мешке...
    Уважаемый Winglion, есть ли какие новости по этой задумке, или всё заглохло?
    Максагор, 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], естественно...

  4. #164
    Activist Аватар для organism
    Регистрация
    11.10.2005
    Адрес
    Дзержинск
    Сообщений
    285
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от WingLion Посмотреть сообщение

    Цель - получение не абсолютной копии Zilog-овского Z80, а быстрой версии (в пределе 1 такт на команду),
    RISC'овый парень, посмотрю )

  5. #165
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если использовать 32 бит шину данных (аппаратно), то можно 4 простых команды за такт выполнять.

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

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

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

    По умолчанию

    Ребята, вы используете в вашем софте 14 МГц в ZX Evo? Нет? Тогда о чём разговор?

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

  8. #167
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    Ребята, вы используете в вашем софте 14 МГц в ZX Evo? Нет? Тогда о чём разговор?
    Я использую 12Мгц Профи в своём софте.

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

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  9. #168
    Banned
    Регистрация
    28.12.2012
    Адрес
    Leesburg, VA, USA
    Сообщений
    974
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vlad Посмотреть сообщение
    у Xilinx есть конструкции примитивов не перевариваемые Quartus'ом, типа RAM16X1D (16-Deep by 1-Wide Static Dual Port Synchronous RAM):
    Сегодня собрал проект для некстЗ80, наступил на ту же макрофункцию, но за 2 минуты скачал с гуглов RAM16X1D.v, добавил в файлы квакуса - все скомпилилось искаропке. (Хотя может год назад этого файла в гуглах и не лежало, я хз...)
    Вопрос в другом: поскольку аффтар писал хдл для Xilinx, можно ли перепилить сорц с учетом каких-нить оптимизаций для альтер? Сорцы курил, навскидку ничего такого не увидел.

  10. #169
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от TSL Посмотреть сообщение
    Хотя может год назад этого файла в гуглах и не лежало
    лежало и так же гуглилось причем на опенкорс

  11. #170
    Master Аватар для Shaos
    Регистрация
    16.01.2005
    Адрес
    California, USA
    Сообщений
    805
    Спасибо Благодарностей отдано 
    97
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Unhappy

    Цитата Сообщение от Максагор Посмотреть сообщение
    Уважаемый Winglion, есть ли какие новости по этой задумке, или всё заглохло?
    Умер он

    За 2 дня до твоего сообщения...
    Администратор сетевого сообщества nedoPC.org
    Урал 8/64К, Sp2000, ZX48K+, ZX16K (спалил), TS1000 (американский ZX81), TS2068, Дельта-С, 20 лет собираю ATM Turbo 2+
    Неспектрумы: Электроника МК-85 и МК-85М, ПК-01 Львов, БК-0011, Вектор-06Ц, Лик (спец), Апогеи, Radio-86RK SRAM 32K & 128K (всё ещё собираю)

Страница 17 из 18 ПерваяПервая ... 131415161718 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 135
    Последнее: 12.05.2020, 19:58
  2. Сырок FDC1772 в VHDL
    от fan в разделе Несортированное железо
    Ответов: 10
    Последнее: 24.03.2017, 16:45
  3. YM2149 - а вот кому VHDL код?
    от icebear в разделе Звук
    Ответов: 15
    Последнее: 11.01.2006, 14:46

Ваши права

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