Заточка NextZ80

FPGA, CPLD
Ответить
Аватара пользователя
ZEK
Сообщения: 172
Зарегистрирован: Пн, 10.06.2013 13:51:07

Заточка NextZ80

Сообщение ZEK »

Обсуждение по доработке напильником NextZ80

todo, идеи:
+1. Добавить режим, что бы сабж мог работать медленннно, длительность инструкций в тактах равна длительности оных в Z80
+2. Нарисовать тестбенч для сравнения с t80
+3. Перенести ждалку (логику останавливающую проц, в корку)
+4. Провести функциональную верификацию
5. Провести верификацию с таймингами какого нить fpga
6. ??
7. ??
...
23. 16 битная шина данных
24. Кеш одного слова (инвалидация?)
25. Стековые операции по 2 байта, по выравненным адресам, сделать что бы писало/читало за один такт
...
50. Реализовать эталонное поведение битов 3,5 в регистре флагов
...
90. Поднять частоту, что бы при выполнении пункта 100, частота вернулась к исходному значению
91. Заменить STAGE с регистр+сумматор, на сдвиговый регистр
...
100. Допилить до совместимости с Rabbit 2000 или EZ80, первое реальней, второе интересней


Исходники тут:
http://tsl-fpga.googlecode.com/hg/cpu/nextz80/
Последний раз редактировалось ZEK Пт, 10.01.2014 18:12:05, всего редактировалось 10 раз.
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3595
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: Заточка NextZ80

Сообщение g0blinish »

простите мою серость, но что таке NextZ80?777
пердачок защеканца лвд после чтения моих постов..

[14:29:28] <Alone> На пентагоне картинки на бордюре рисуют. Это вообще нечестно

Теперь поезд ваш в депо, а мой локомотив мчится на укрепление демосцены спектрума.(с)Пиздунков
Аватара пользователя
TS-Labs
Сообщения: 5368
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Заточка NextZ80

Сообщение TS-Labs »

NextZ80 - однотактовая корка зетника. В среднем в 3.8 раза продуктивнее з80 на той же частоте.
Аватара пользователя
ZEK
Сообщения: 172
Зарегистрирован: Пн, 10.06.2013 13:51:07

Re: Заточка NextZ80

Сообщение ZEK »

Ложу первую альфа версию в первое сообщение, надо к ней тестбенч сообразить, что бы в паре работали t80 и NextZ80, выполняли одновременно один и тот же код, проверка на такты

Первая версия выдает в последнем цикле исполнения, количество тактов, на которое проц надо остановить, что бы выровнять по таймингам
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
Аватара пользователя
TS-Labs
Сообщения: 5368
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Заточка NextZ80

Сообщение TS-Labs »

NovaSTorm
Сообщения: 75
Зарегистрирован: Сб, 22.06.2013 19:33:40

Re: Заточка NextZ80

Сообщение NovaSTorm »

ZEK, а для чего оно (переделка) вообще глобально?
Как я понимаю, это всё для U**?
Ведь если нам нужен другой проц, мы его и зальём в FPGA? Не так же часто нам придётся переключаться?
Чем отличается кролик от z80?
Можно поподробнее о п.90? Что куда вернётся? Ведь у EZ80 АФАИК пятиступенчатый конвейер? Как с этим у nextz80?
И просвети неуча по п.91, что за STAGE?
Аватара пользователя
ZEK
Сообщения: 172
Зарегистрирован: Пн, 10.06.2013 13:51:07

Re: Заточка NextZ80

Сообщение ZEK »

1. Что бы для демок не добавлять еще одну корку типа T80, по ресурсам меньше места
2. Корка проца универсальная
3. Заливать это сбрасывать комп с потерей содержимого памяти
4. Больше команд, есть хорошие ld IX, (SP+5), заточка под Си
5. При усложнении схемы, как правило частота падает, ez80 3х ступечнатый конвеер, nextz80 без конвеера
6. Регистр в корке, влияет на скорость декодера команд

---

Диаграмка NextZ80 паралельно с T80 выполняет один и тот же код
на фото циклы M1 и адреса

---

1,2,3 пункты в базовом варианте выполнены
добавил 4, 5 пункт

И да, свежий сырок + тестбенч + проект под Active-HDL
Вложения
NextZ80.zip
(83.7 КБ) 893 скачивания
Последний раз редактировалось ZEK Пт, 03.01.2014 20:51:46, всего редактировалось 1 раз.
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
Аватара пользователя
TS-Labs
Сообщения: 5368
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Заточка NextZ80

Сообщение TS-Labs »

Закинул в репку.

---

zek, держи циклы обработки ИНТа:
https://dl.dropboxusercontent.com/u/317 ... DL/im0.png
https://dl.dropboxusercontent.com/u/317 ... DL/im1.png
https://dl.dropboxusercontent.com/u/317 ... DL/im2.png
(им0 и им1 не различаются.)
Аватара пользователя
ZEK
Сообщения: 172
Зарегистрирован: Пн, 10.06.2013 13:51:07

Re: Заточка NextZ80

Сообщение ZEK »

Новая версия:
1. написал тест простой, которые все инструкции проца исполняет, для сверки таймингов
2. в функциональной симуляции тайминги сошлись
3. Сейчас в тестбенче NextZ80 в режиме Fast, в TB модуле есть переключался FMODE
Вложения
NZ80.zip
(411.12 КБ) 882 скачивания
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
shurik-ua
Сообщения: 22
Зарегистрирован: Пт, 01.03.2013 16:54:09

Re: Заточка NextZ80

Сообщение shurik-ua »

по поводу п.2 в первом сообщении: http://zx.pk.ru/showpost.php?p=599660&postcount=869
сырки из поста прикрепил, находятся в папке ROM
была идея задействовать часы - но как то руки не дошли.
Вложения
u8_test_copy_v2.zip
(864.51 КБ) 924 скачивания
MVV
Сообщения: 479
Зарегистрирован: Вс, 01.12.2013 22:48:17

Re: Заточка NextZ80

Сообщение MVV »

ZEK, по поводу fetch, думаю можно распараллелить дешифратор команд, т.е. уйти от каскадного case, уменьшить задержку дешифрации используя простую логику сравнения отдельно для групп команд, как например здесь
Аватара пользователя
ZEK
Сообщения: 172
Зарегистрирован: Пн, 10.06.2013 13:51:07

Re: Заточка NextZ80

Сообщение ZEK »

да там таких групп будет 3-4 слоя, то на то и выйдет
первый декод, потом исключения для inc (hl), потом префиксы итд, делал, огород не намного меньше

надо не частоту а производительность на такт увеличивать, раза в 2-3 можно, если смотреть на код sdcc то раз в 6 :)
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
MVV
Сообщения: 479
Зарегистрирован: Вс, 01.12.2013 22:48:17

Re: Заточка NextZ80

Сообщение MVV »

согласен, для начала достаточно NextZ80 на 3.5-14МГц с кэш. Как думаешь, есть ли смысл замены проца в ts-conf на NextZ80? Знаю, что на железе ZX-Evo, это невозможно реализовать, по этому всё стало, и это в разы тормозит и ограничивает разработчиков в своем хобби, тут вопрос скорее на - а если?
Аватара пользователя
TS-Labs
Сообщения: 5368
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Заточка NextZ80

Сообщение TS-Labs »

Я вот всерьёз подумываю выучить язык глухонемых. И постить ответы в тему про некстз80 буду в виде картинок из жестов.
MVV
Сообщения: 479
Зарегистрирован: Вс, 01.12.2013 22:48:17

Re: Заточка NextZ80

Сообщение MVV »

TS-Labs писал(а):Я вот всерьёз подумываю выучить язык глухонемых. И постить ответы в тему про некстз80 буду в виде картинок из жестов.

Начни с Брайля. Я что-то пропустил?
Аватара пользователя
TS-Labs
Сообщения: 5368
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Заточка NextZ80

Сообщение TS-Labs »

MVV писал(а):Я что-то пропустил?

Походу наверное все, что я писал. Сколько раз я уже писал, что сабж есть проц для 0-тактовой памяти, т.е. юзабельность некстз80 в реальных системах никакая. Он годится только для тестбенчей. Итого, к нему либо прикручивается конвеер, либо кеш который будет чуть ли не частью ядра на регистрах (ибо памяти в циклонах клоковые), либо фтопку его целиком, а пишется новое ядро с конвеером и мульонов блоков дешифрации и исполнения.

По новому ядру концепты следующие:
1. Фетчить по 32 бита на этапе фетчера. По мере исполнения команд сдвигать опкодерный буфер на нужное кол-во байт, соответствующее длине выполненной команды. Недостающее подтягивать. (Так делают STM8/32, Xtensa, например.)
2. Дешифровать сразу всю инструкцию целиком, включая префиксы. На индексные префиксы требуется отдельный такт дешифратора, ибо их можно напихать тысячи, по типу DD DD DD 21 00 00.
3. АЛУ сразу 16 бит.
4. Модуль райтбэк записи.

Профиты:
- реально современная конвеерная архитектура,
- высокая частота за счет конвееризации,
- высокая производительность за счет широких шин,
- потенциальная возможность суперскаляра, если пилятору хватит умений и альтеры.

Минусы: можно забыть не только про потактовую совместимость, но и про кодовую. Самомодифицирующийся код работать не будет, например.
Аватара пользователя
psb
Сообщения: 715
Зарегистрирован: Вт, 30.12.2014 23:22:32

Re: Заточка NextZ80

Сообщение psb »

TS-Labs писал(а):Самомодифицирующийся код работать не будет

это неправильно. такой код должен просто всё тормозить, но не неработать.

однако, вы забыли главное: нужен релиз в асик, иначе ... я уже забыл, что там говорил рупор.
MVV
Сообщения: 479
Зарегистрирован: Вс, 01.12.2013 22:48:17

Re: Заточка NextZ80

Сообщение MVV »

TS-Labs писал(а):юзабельность некстз80 в реальных системах никакая. Он годится только для тестбенчей.

Да, ладно. Вот взять как наглядный пример nextzx, проц на 42МГц (в 42 раза быстрее чем на zx-evo) работает в 64К (назовем её страницей кэш, подобной как раньше 16-32К кэш на SRAM). Даже если просто привязать один только nextZ80 14МГц (а можно ведь и два проца) к SDRAM без ожидания (память успевает), то комп уже сразу в 3.5 раза будет быстрее бегать чем zx-evo, а это существенный выигрыш для игр.
Последний раз редактировалось MVV Пн, 21.03.2016 16:13:32, всего редактировалось 2 раза.
Аватара пользователя
TS-Labs
Сообщения: 5368
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Заточка NextZ80

Сообщение TS-Labs »

Ну а если ты выкинешь ожидание памяти в том же цикле, что и дешифратор, а это походу почти всегда единственный цикл для некста, то частота станет 60МГц.
Ответить