Заточка NextZ80

FPGA, CPLD

Postby ZEK » Thu, 26.12.2013 16:19:07

Обсуждение по доработке напильником 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/
Last edited by ZEK on Fri, 10.01.2014 18:12:05, edited 10 times in total.
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
User avatar
ZEK
 
Posts: 174
Joined: Mon, 10.06.2013 13:51:07

Postby g0blinish » Thu, 26.12.2013 16:33:08

простите мою серость, но что таке NextZ80?777
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby TS-Labs » Thu, 26.12.2013 16:34:45

NextZ80 - однотактовая корка зетника. В среднем в 3.8 раза продуктивнее з80 на той же частоте.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby ZEK » Thu, 26.12.2013 16:38:36

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

Первая версия выдает в последнем цикле исполнения, количество тактов, на которое проц надо остановить, что бы выровнять по таймингам
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
User avatar
ZEK
 
Posts: 174
Joined: Mon, 10.06.2013 13:51:07

Postby TS-Labs » Thu, 26.12.2013 17:47:41

User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby NovaSTorm » Thu, 26.12.2013 19:58:52

ZEK, а для чего оно (переделка) вообще глобально?
Как я понимаю, это всё для U**?
Ведь если нам нужен другой проц, мы его и зальём в FPGA? Не так же часто нам придётся переключаться?
Чем отличается кролик от z80?
Можно поподробнее о п.90? Что куда вернётся? Ведь у EZ80 АФАИК пятиступенчатый конвейер? Как с этим у nextz80?
И просвети неуча по п.91, что за STAGE?
NovaSTorm
 
Posts: 75
Joined: Sat, 22.06.2013 19:33:40

Postby ZEK » Thu, 26.12.2013 20:59:34

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

---

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

---

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

И да, свежий сырок + тестбенч + проект под Active-HDL
Attachments
NextZ80.zip
(83.7 KiB) Downloaded 1268 times
Last edited by ZEK on Fri, 03.01.2014 20:51:46, edited 1 time in total.
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
User avatar
ZEK
 
Posts: 174
Joined: Mon, 10.06.2013 13:51:07

Postby TS-Labs » Fri, 03.01.2014 17:38:31

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

---

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 не различаются.)
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby ZEK » Fri, 10.01.2014 18:11:08

Новая версия:
1. написал тест простой, которые все инструкции проца исполняет, для сверки таймингов
2. в функциональной симуляции тайминги сошлись
3. Сейчас в тестбенче NextZ80 в режиме Fast, в TB модуле есть переключался FMODE
Attachments
NZ80.zip
(411.12 KiB) Downloaded 1260 times
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
User avatar
ZEK
 
Posts: 174
Joined: Mon, 10.06.2013 13:51:07

Postby shurik-ua » Fri, 02.05.2014 07:47:34

по поводу п.2 в первом сообщении: http://zx.pk.ru/showpost.php?p=599660&postcount=869
сырки из поста прикрепил, находятся в папке ROM
была идея задействовать часы - но как то руки не дошли.
Attachments
u8_test_copy_v2.zip
(864.51 KiB) Downloaded 1311 times
shurik-ua
 
Posts: 22
Joined: Fri, 01.03.2013 16:54:09

Postby MVV » Sun, 20.03.2016 13:18:32

ZEK, по поводу fetch, думаю можно распараллелить дешифратор команд, т.е. уйти от каскадного case, уменьшить задержку дешифрации используя простую логику сравнения отдельно для групп команд, как например здесь
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby ZEK » Sun, 20.03.2016 17:10:10

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

надо не частоту а производительность на такт увеличивать, раза в 2-3 можно, если смотреть на код sdcc то раз в 6 :)
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
User avatar
ZEK
 
Posts: 174
Joined: Mon, 10.06.2013 13:51:07

Postby MVV » Sun, 20.03.2016 18:20:50

согласен, для начала достаточно NextZ80 на 3.5-14МГц с кэш. Как думаешь, есть ли смысл замены проца в ts-conf на NextZ80? Знаю, что на железе ZX-Evo, это невозможно реализовать, по этому всё стало, и это в разы тормозит и ограничивает разработчиков в своем хобби, тут вопрос скорее на - а если?
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby TS-Labs » Sun, 20.03.2016 18:52:40

Я вот всерьёз подумываю выучить язык глухонемых. И постить ответы в тему про некстз80 буду в виде картинок из жестов.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby MVV » Sun, 20.03.2016 19:20:56

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

Начни с Брайля. Я что-то пропустил?
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby TS-Labs » Sun, 20.03.2016 20:13:27

MVV wrote:Я что-то пропустил?

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

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

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

Минусы: можно забыть не только про потактовую совместимость, но и про кодовую. Самомодифицирующийся код работать не будет, например.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby psb » Sun, 20.03.2016 20:24:03

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

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

однако, вы забыли главное: нужен релиз в асик, иначе ... я уже забыл, что там говорил рупор.
User avatar
psb
 
Posts: 715
Joined: Tue, 30.12.2014 23:22:32

Postby MVV » Sun, 20.03.2016 20:44:08

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

Да, ладно. Вот взять как наглядный пример nextzx, проц на 42МГц (в 42 раза быстрее чем на zx-evo) работает в 64К (назовем её страницей кэш, подобной как раньше 16-32К кэш на SRAM). Даже если просто привязать один только nextZ80 14МГц (а можно ведь и два проца) к SDRAM без ожидания (память успевает), то комп уже сразу в 3.5 раза будет быстрее бегать чем zx-evo, а это существенный выигрыш для игр.
Last edited by MVV on Mon, 21.03.2016 16:13:32, edited 2 times in total.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby TS-Labs » Sun, 20.03.2016 20:52:47

Ну а если ты выкинешь ожидание памяти в том же цикле, что и дешифратор, а это походу почти всегда единственный цикл для некста, то частота станет 60МГц.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56


Return to HDL

Who is online

Users browsing this forum: No registered users and 0 guests

x