User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 133

Тема: Ядро с 32 битами и виртуализацией

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

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

    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,811
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    386
    Спасибо Благодарностей получено 
    339
    Поблагодарили
    244 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Что ещё добавить, изменить?
    Елси и изобретать велосипеды, то можно хоть колеса одного диаметра делать??
    https://docs.google.com/spreadsheets...gid=1809398086
    там вкладка для следующего есть, да и в доках они кое-что писали, что реализовали.
    Да и ужасм вроде поддерживает новые инструпции.
    *мимо проходил
    Profi v3.2 -=- Speccy2010,r2

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

  3. #2

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Елси и изобретать велосипеды, то можно хоть колеса одного диаметра делать??
    https://docs.google.com/spreadsheets...gid=1809398086
    там вкладка для следующего есть, да и в доках они кое-что писали, что реализовали.
    Да и ужасм вроде поддерживает новые инструпции.
    *мимо проходил
    У "следующего" есть интересные инструкции, но где там 32 бита? У него концепция совсем другая. У меня, скорее, 32-разрядный процессор с аппаратным эмулятором Z80, и вообще я задумывался о простом RISC и трансляции "на лету", но нашёл способ проще.

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

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    есть nand
    Есть, и означает "not (A and B)", а у нас "A and (not B)".

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    условное выполнение
    add nz bc,de
    зачем?
    шоб было
    Условное выполнение используется чтобы конвейер не сбивать переходами. Будет конвейер - будет условное выполнение, а так оно действительно "шоб было".

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    и если мы что то расширяем
    то не уподобляемся мерзкому 8080
    и расширяем в z80 стайл
    Не, не пойдёт. Плохой это стайл, особенно в плане скорости. На кристалле можно обойтись одним транзистором, а в FPGA синтезатор такие дурные схемы рисует, что частота сразу резко падает.

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    но тогда старшие 2 байта
    придется выкалупывать для работы как с 8 бит числами
    для чего потребются новые команды...
    или просерание процессорного времени
    "Гоги, а оно тебе зачем?" В смысле старшие байты. Просерание времени всё равно будет, потому что или все условно по 5 тактов, или некоторые по 3, а экзотика по 8. Старшие байты это по-моему экзотика.

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

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    add ehl,ebc
    равносильно
    add HLhll,BCbcl
    и по влиянию на флаги
    сопоставимо с
    add hl,bc
    и знак у нас сохраняется!!!!

    тоесть в любой момент времени
    мы можем дрыгать точностью вычислиений
    add hl,de
    add ehl,ebc
    mul ehl,eix
    ld bc,hl - и так например отбросили младшие не значимые 16 бит
    Вот тут я вообще нить потерял.

    Понимаешь, если в FPGA делать вот совсем всё на всё, то получается мультиплексор на тыщи ячеек и с огромной задержкой, в результате ядро будет работать на частоте 10 МГц. Что, в принципе, и наблюдаем почти во всех Z80-"корках".

    То есть опять "либо то, либо это". Либо делаем огромный мультиплексор с возможностью подать на АЛУ всякие комбинации регистров 8/16/32 бит и получаем тормоза на всём, либо делаем тупой мультиплексор без сдвигов, получаем быстрые 32 бита и потерю одного такта при эмуляции старых 8-битных инструкций. Долго объяснять, но вот у меня такая загогулина получилась.

    Но я подумаю куда это впихнуть можно. Если в итоге доступ будет быстрее чем альтернативы типа "srl BC,16" - сделаю. Swap word и swap byte устроит?

  4. #3

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, и учтите что 32 бита это не просто арифметика, а ещё и 24-разрядный адрес.

    У процессора как минимум два режима работы:
    1. "Нативный", бинарно несовместимый с Z80, но имеющий плюшки типа 24-разрядной адресации.
    2. "Эмулятор Z80", в котором он работает как быстрый Z80 и, если разрешено, через префикс имеет доступ к 32-битным инструкциям.
    Запрет нужен чтобы проц не падал при запуске старого софта, в котором могут встретиться такие же комбинации недокументированных байтов.

    Плюс ещё будет "kernel" и "user". В "kernel" можно всё, в "user" запрещён доступ к портам и т.п. Пусть приложение с железом работает через драйвер.

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

    Цитата Сообщение от andrews Посмотреть сообщение
    только не забудьте RTC и BT или WiFi и поддержку microSD в тот же кристалл. RISC точно бы упростил и архитектуру и конвейер. Быстродействия 50 МГц z80 точно не надо, если будут 32 битная арифметика и логика, достаточно 25 МГц для таких экранов.
    andrews опять про технологии XXI века...

    Нет, 25 МГц не достаточно. Экран тоже будет другой.

  5. #4

    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    429
    Поблагодарили
    196 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В 2016 году занимался аналогичным проектом.
    Но не доделал. Хотя кое-что уже работало.
    Например, по каналу RS232 из PC посылал файлы .scr в плату с FPGA с выводом на экран монитора.
    Могу реанимировать проект, если есть интерес.
    Вот описания на процессор и СнК.
    https://cloud.mail.ru/public/XfgP/6ymYQ5bfU
    https://cloud.mail.ru/public/2swe/2Mg4A9qfC

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

    Bolt(11.01.2020)

  6. #5

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

    По умолчанию

    Bolt, в плане концепции расширения разрядности проца с сохранением совместимости посмотри на примере 6502->65816 (W65C816S), и даже есть концепт 32-хбитного W65C832S (но, к сожалению, не реализован в серии).
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

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

    Bolt(11.01.2020)

  7. #6

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,875
    Спасибо Благодарностей отдано 
    523
    Спасибо Благодарностей получено 
    252
    Поблагодарили
    226 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    andrews опять про технологии XXI века...
    Нет, 25 МГц не достаточно. Экран тоже будет другой.
    без этого не будет доступа к интернету, а тогда это по нынешеним временам игровая приставка, а не комп! "Другой экран" не должен весить тяжело >16k, иначе это потянет вниз другие характеристики компа. Вернее придется увеличивать объем всех видов памяти, пропускную способность шин, интернет-трафик
    Последний раз редактировалось andrews; 11.01.2020 в 16:55.

  8. #7

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    5,000
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    324
    Спасибо Благодарностей получено 
    327
    Поблагодарили
    249 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Есть, и означает "not (A and B)", а у нас "A and (not B)".
    не спорьте, эта операция обычно называется bic (BIt Clear)

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

    Ynicky, о, ты живой в личку загляни
    Прихожу без разрешения, сею смерть и разрушение...

  9. #8

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Вот тут я вообще нить потерял.
    ну дык
    старшая половина 32битного регистра
    лежит в 8битных регистрах H и L
    в H за одно и знак в 7-бите

    младшая половина 32битного регистра
    лежит в новом 16 битном регистре HLL ну или LHL

    все команды работающие с 32 бит регами
    оперируют с HL и LHL как с одним регистром EHL

    все старые команды z80
    могут без проблем брать HL (старшую половину да еще со знаком)
    и отбрасывать дробную часть LHL
    или же вообще брать один H и работать по 8-ми битному

    тоесть при переходе к работе с 8\16 битными числами старыми командами z80 из 32 битного режима
    у нас НЕ ОСТАЮТСЯ ОГРЫЗКИ (младшие байты) от цифр
    у нас остается числа деленные на 256 и со знаком
    (другими словами просто со сниженной точностью)

    мы можем работать с ними старыми командами
    а потом снова новыми 32битными

    то есть
    add ede,ebc
    add $01230000,$11111111
    ede= $12341111
    а тут старый 16 битный
    add hl,de
    add $0001,$1234
    de = $1235 (старшая значимая половина со знаком доступна старым командам)

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

    Цитата Сообщение от Bolt Посмотреть сообщение
    Есть, и означает "not (A and B)", а у нас "A and (not B)".
    о боже
    теперь будем знать

    а зачем нужна логическая операция?
    выдавать 1 только
    если первый операнд 1 а второй 0
    с ходу не вижу применения
    Последний раз редактировалось NEO SPECTRUMAN; 11.01.2020 в 16:25.

  10. #9

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    5,000
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    324
    Спасибо Благодарностей получено 
    327
    Поблагодарили
    249 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а зачем нужна логическая операция?
    выдавать 1 только
    если первый операнд 1 а второй 0
    с ходу не вижу применения
    например, для битолюбства с вычислением автомасок
    Прихожу без разрешения, сею смерть и разрушение...

  11. #10

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    add ede,ebc
    add $01230000,$11111111
    ede= $12341111
    а тут старый 16 битный
    add hl,de
    add $0001,$1234
    de = $1235 (старшая значимая половина со знаком доступна старым командам)
    Теперь понял. На фиксированную точку похоже.

    Быстро прыгать туда-сюда между 16 и 32 битами не планировалось, а адресация по младшим битам получается с интересной фичей, которую пока ещё не додумал.
    Старые команды больше для совместимости, не для написания новых программ.

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

    Фиксированную точку тоже потом применим

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

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Bolt, в плане концепции расширения разрядности проца с сохранением совместимости посмотри на примере 6502->65816 (W65C816S), и даже есть концепт 32-хбитного W65C832S (но, к сожалению, не реализован в серии).
    Что-то сразу не понял, потом надо будет вдумчиво почитать.
    У него, кстати, andn называется rep:
    Код:
    SEP #%00010000 	; set bit 4 for 8-bit index registers.
    
    REP #%00010000 	; clear bit 4 for 16-bit index registers.
    - - - Добавлено - - -

    Цитата Сообщение от Ynicky Посмотреть сообщение
    В 2016 году занимался аналогичным проектом.
    Но не доделал. Хотя кое-что уже работало.
    Например, по каналу RS232 из PC посылал файлы .scr в плату с FPGA с выводом на экран монитора.
    Могу реанимировать проект, если есть интерес.
    Вот описания на процессор и СнК.
    https://cloud.mail.ru/public/XfgP/6ymYQ5bfU
    https://cloud.mail.ru/public/2swe/2Mg4A9qfC
    Ого.
    Это с нуля разработано или за основу было взято какое-то ядро? На какой частоте это работало? Регистры были в регистрах или использовалась встроенная в FPGA память?

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 465
    Последнее: 03.01.2020, 07:15
  2. Ответов: 16
    Последнее: 02.08.2005, 12:20

Ваши права

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