PDA

Просмотр полной версии : A давайте разработаем собственный Z80 на VHDL.



WingLion
22.02.2012, 05:11
В продолжение темы про "российский комп"...

Идея в следующем...

Есть у меня заготовка для проектирования процессоров.
Чтобы сделать из нее Z80 не хватает самой малости.
Надо ее наполнять контентом, а именно, писать HDL коды для всех-всех-всех команд. У меня терпения не хватило после первых 40 штук...

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

Тем, кому интересно, прошу на e-mail [email protected] (в теме письма писать - Z80, чтобы в спаме не затерялось сообщение).

Плюсы для участников
1. Получение конечного результата (если он будет) - VHDL кода для Z80 и его возможных расширений.
2. Формально, бесплатный тренинг по VHDL и Quartus II на примере конкретного проекта.

Mick
22.02.2012, 07:16
В продолжение темы про "российский комп"...

Идея в следующем...

Есть у меня заготовка для проектирования процессоров.
Чтобы сделать из нее Z80 не хватает самой малости.
Надо ее наполнять контентом, а именно, писать HDL коды для всех-всех-всех команд. У меня терпения не хватило после первых 40 штук...


Имеет смысл сделать его с 16 битной шиной данных и вставить соответсвующие команды.

Vadim
22.02.2012, 07:23
(я вот, хочу прямо вставить в него команды акселератора Sprinter-a)


Управление акселем можно сделать и по портам. Не страшно, если мы потратим 20-30 таков на подготовительные операции, если блок из 1024 байт обработается в 10 раз быстрее стандартных методов. В Z80 нужны команды умножения/деления. Обмена любого регистра с любым и т.д. и т.п. Смотрим функционал Z-380. Очень интересно. LDIR по такту, а лучше по пол такта на байт. Ведь можно сделать аппаратно 16 бит шину данных, память в виде 2-х линеек (как на ранних ПЦ), с контроллером, который будет разруливать 8-и 16-и битный доступ. Если читаем 16 бит с четного адреса - читаются 16 бит. Если с нечетного, тогда придётся 2 цикла чтения делать, с инкрементом адреса. Если читаем 8 бит с четного адреса, читаем 16 бит (8 бит читаются вперед и если вдруг при следующем шаге они понадобятся - то они уже считаны), если читаем 8 с нечетного, то читаем 8 бит. Разве это было бы не замечательно? А если кэш на ОЗУ приделать? Который хотя бы держал в себе ранее считанные значения, что бы при повторном обращении к ранее считанным ячейкам не обращался в ОЗУ? Если мы делаем свой проц на ПЛИС, то всё это реально. И гораздо интереснее команд акселя, на мой взгляд.

---------- Post added at 09:23 ---------- Previous post was at 09:20 ----------


что бы при повторном обращении к ранее считанным ячейкам не обращался в ОЗУ?
Имею ввиду, что бы разгрузить ОЗУ, что бы не было wait'ового обращения всегда. КАк вот на ПЦ? Убираем кэши все, производительность резко падает. А на спектруме нет кэшей и ни когда не было. ОЗУ работает на пределе, т.к. видео-ОЗУ и ОЗУ компа одно и тоже. + ещё турбо режим. Те же 60нс микрухи аналоги РУ7 еле выдерживают.

Totem
22.02.2012, 09:09
вроде на http://opencores.org
видел корку Z80 c конЬвеером.

Vadim
22.02.2012, 10:01
видел корку Z80 c конЬвеером
И как оно в работе? Оно вообще работает? Что-то на ней хоть кто-то делал?

Totem
22.02.2012, 10:52
Vadim, именно эта корка без понятия, проверить думаю не трудно кому интересно. Теоретически точно также как на ez80.

ZEK
22.02.2012, 12:13
Что-то на ней хоть кто-то делал?
есть на опенкорес cp/m SoC система на этом проце

iceoflame
22.02.2012, 12:26
WingLion, А смысл есть же готовый опенкоровский, правда не стакими характеристиками но все же.

Ewgeny7
22.02.2012, 13:12
ИМХО большого смысла вообще нет, по определению. Только ради "я сделал!".
Куда-то применить его, тем более хотя бы "мелкооптово" не светит.

iceoflame
22.02.2012, 13:23
Ewgeny7, Просто T80 уже обкатанный и нормально работает. А в новом выловить все баги будет почти не реально.

Ewgeny7
22.02.2012, 13:33
Просто T80 уже обкатанный и нормально работает.
Здесь я с тобой полностью согласен. Т80 уже практически полностью симулирует железный оригинал.
Новый же процессор по определению будет неприменим для спектрум-машин, впрочем, и для остальных существующих тоже.
Только если лепить свою машину (в рамках проекта соседнего топика). Но... софт? Не, не так... СОФТ????

iceoflame
22.02.2012, 14:20
Ewgeny7, Есть только смысл другую платформу ковырять (Амига и др 16 битные, типа БК...). Для всего восьмибитного есть реверс который полностью нормальная штуковина.

bigral
22.02.2012, 16:14
а можно ли допилить T80 до ez80? чтоб 24bit АЛУ и адресса? ато оно печально в 64kb, или еще круче до 24bit/32bit/64bit по желанию (програмно выбирая режим)

WingLion
22.02.2012, 16:32
У T80 есть явные недостатки... Возможно, они уже исправлены, но тот вариант, что мне попался дурит с WAIT-ами... И не работает нормально на высоких частотах.

---------- Post added at 15:32 ---------- Previous post was at 15:30 ----------

На счет 16-битного Z80 - то тут перспектив не вижу... Ибо есть 16/32-битные процы более нормальные.

Ewgeny7
22.02.2012, 19:07
У T80 есть явные недостатки... Возможно, они уже исправлены, но тот вариант, что мне попался дурит с WAIT-ами...
На opencores и прочих интернетах Т80 не полностью пофикшеный. Самый совершенный вариант хранится исключительно на нашем форуме :)
Автор Speccy-2010 syd в своем проекте допилил Т80 до состояния совместимости. Немного позднее эта версия Т80 была использована в проектах uX-Speccy. Нигде более оно не выкладывалось. Качество симуляции видно по "критичным" программам, использующим времянки настоящего Z80 для построения изображения (сложные демки).

WingLion
22.02.2012, 19:37
Самый совершенный вариант хранится исключительно на нашем форуме

э... а в каком месте, если не секрет?

Vadim
22.02.2012, 22:18
Новый же процессор по определению будет неприменим для спектрум-машин, впрочем, и для остальных существующих тоже.
Это почему? Делаем так, что проц отрабатывает и новый и старый режим. Т.е. времянки старых команд + сами команды. И новый, с новыми времянками и командами. Переключаться - новый регистр, доступ по 1 новому коду. Совместимость почти 100%.


На счет 16-битного Z80 - то тут перспектив не вижу...
Ага. А вставка пары новых команд для акселя, так это просто мегабудущее... Ну не смешно ли? 16 или 32 бита - вот будущее и оно очень реально. Реализуемо и с очень высоким процентом совместимости.

Mick
22.02.2012, 22:38
Ага. А вставка пары новых команд для акселя, так это просто мегабудущее... Ну не смешно ли? 16 или 32 бита - вот будущее и оно очень реально. Реализуемо и с очень высоким процентом совместимости.

В идеале там нужно целый набор команд для работы со словами, особенно работа с памятью. Ну и аккумулятор тоже дополнить старшим байтом.

Black_Cat
22.02.2012, 22:50
Это почему? Делаем так, что проц отрабатывает и новый и старый режим. Т.е. времянки старых команд + сами команды. И новый, с новыми времянками и командами. Переключаться - новый регистр, доступ по 1 новому коду. Совместимость почти 100%.это уже есть в eZ80

WingLion
23.02.2012, 04:35
В идеале там нужно целый набор команд для работы со словами, особенно работа с памятью.

То есть, по сути - другой процессор - а это у меня давно есть - еще и в четырехядерном варианте с предельной тактовой 160MHz, хотя, вру, на циклоне-3 тактовая повыше, просто запускал его еще только на 2-м.



А вставка пары новых команд для акселя, так это просто мегабудущее... Ну не смешно ли?

Засмеять можно любую идею, если слова вырвать из контекста, переврать и переставить наоборот... (про то, что у акселя не одна, а несколько десятков команд и работает он с данными до 2048-разрядов и говорить не буду)

WingLion
23.02.2012, 10:41
Новый же процессор по определению будет неприменим для спектрум-машин, впрочем, и для остальных существующих тоже.

Кстати, если делать его применительно к конкретной машине, то неприменимость отпадает по определению. Ибо он будет с конкретной машиной и проверяться.

ZEK
23.02.2012, 12:06
В Z80 надо добавить одну мелочь и он станет на порядок красивей
а именно что бы по какому то префиксу инструкции которые работают с IX работали с SP, сразу жизнь упрощается с передачей параметров и расположением локальных переменных в стеке.
Имею ввиду индексную адресацию относительно стека

mastermind
23.02.2012, 12:21
Как минимум можно сделать программно включаемый "продвинутый турбо-режим" в котором любая операция будет выполняться за 1 такт (или сколько минимум возможно) и пользовать его там где совместимость по тактам не нужна.

ZEK
23.02.2012, 12:31
в котором любая операция будет выполняться за 1 такт
это будет второй процессор, перестроить корки z80 нереально

Vadim
23.02.2012, 13:29
Засмеять можно любую идею, если слова вырвать из контекста, переврать и переставить наоборот...
Это не важно, сколько там команд, и скаими данными оно работает. Идея ясна. По крайней мере мне. Согласитесь, если мы будем иметь шину 16 или 32 бит, то данные будут читаться быстрее, разве это не даст ускорения при выполнении команд? Даст конечно. В худшем варианте не замедлит, будет так как было. В лучшем - ускорение в 2-4 раза. В том же Z-280 это реализовано было. Всеми режимами управляет несколько системных регистров (как и на 80386 и позднее). Рулится всё битами. Главное всё продумать, что и как делать. Что бы было эффективно и красиво. ez80 конечно интересен, но много чего у него сделано топорно. То же ограничение в 24 бита на ОЗУ. Ну будет 16 метров и что? Далее опять страницы?

---------- Post added at 15:29 ---------- Previous post was at 15:27 ----------


В Z80 надо добавить одну мелочь и он станет на порядок красивей
а именно что бы по какому то префиксу инструкции которые работают с IX работали с SP, сразу жизнь упрощается с передачей параметров и расположением локальных переменных в стеке.
Почитай про Z-380. Там и это реализовано и много чего другого. По гибкости команд и методов адресации не сильно уступает тем же 80386 и более поздним.

WingLion
23.02.2012, 18:38
-- цитата --
Когда в товарищах согласья нет,
На лад их дело не пойдет,
И выйдет из него не дело, только мука.
Однажды Лебедь, Рак да Щука
Везти с поклажей воз взялись,
И вместе трое все в него впряглись;
Из кожи лезут вон, а возу все нет ходу!
Поклажа бы для них казалась и легка:
Да Лебедь рвется в облака,
Рак пятится назад, а Щука тянет в воду...
-- конец цитаты --

alone
23.02.2012, 22:39
Можно ли сэкономить ЛЕ, используя микрокод? Например, запихнуть туда последовательность машинных циклов для каждой команды (1024 команды).

vlad
23.02.2012, 22:57
а можно ли допилить T80 до ez80? чтоб 24bit АЛУ и адресса? ато оно печально в 64kb, или еще круче до 24bit/32bit/64bit по желанию (програмно выбирая режим)
это дало бы возможность попробовать портировать платформу ez80p на Reverse.

Black_Cat
23.02.2012, 23:59
Как минимум можно сделать программно включаемый "продвинутый турбо-режим" в котором любая операция будет выполняться за 1 такт (или сколько минимум возможно) и пользовать его там где совместимость по тактам не нужнав eZ80 это есть - программно включаемый расширенный режим с командой за такт на 50MHz

svofski
24.02.2012, 00:05
Можно ли сэкономить ЛЕ, используя микрокод? Например, запихнуть туда последовательность машинных циклов для каждой команды (1024 команды).

Можно: есть 8080, который так делает. Но в ПЛИС хранение микрокода требует либо дорогих блоков памяти, либо тех же LE. Результат получается в среднем так на так.

mastermind
24.02.2012, 00:08
в eZ80 это есть - программно включаемый расширенный режим с командой за такт на 50MHz
Да, но режима полной совместимости с оригинальным Z80 в eZ80 нет.

Black_Cat
24.02.2012, 00:14
Да, но режима полной совместимости с оригинальным Z80 в eZ80 нет.кто тебе такую чушь сказал?

Максагор
24.02.2012, 00:30
Идея процессора на VDHL с новыми командами проч. замечательная! Поддерживаю обеими руками, но с одним "но": Снаружи это должна быть платка с 40 выводами, подключаемыми в панельку из-под стандартного Z80, чтобы воткнул в любой спек и работай, только с новыми возмлжностями.

mastermind
24.02.2012, 00:32
кто тебе такую чушь сказал?
Документация :)

Black_Cat
24.02.2012, 00:37
mastermind, читай внимательно доку и не неси ерунды :) , в стандартном режиме CPU eZ80 абсолютно идентичен CMOS Z80

mastermind
24.02.2012, 00:56
mastermind, читай внимательно доку и не неси ерунды :) , в стандартном режиме CPU eZ80 абсолютно идентичен CMOS Z80
Да говорю ж, читал.
Я об этом:
http://www.zilog.com/docs/um0077.pdf


Zilog’s eZ80® CPU is a high-speed, 8-bit microcontroller capable of executing code four times faster than a standard Z80 operating at the same clock speed
Т.е. в т.ч. и в режиме совмеcтимости с Z80 он в 4 раза меньше тактов чем реальный Z80 использует.
Для [части] спектрумовского софта, очевидно, это тоже фактор (не-)совместимости.

Black_Cat
24.02.2012, 01:06
Т.е. в т.ч. и в режиме совмеcтимости с Z80 он в 4 раза меньше тактов чем реальный Z80 используетнет, здесь речь о расширенном режиме, а в стандартном режиме работа процессора абсолютно идентична Z80

mastermind
24.02.2012, 01:19
Также на сайте EZ80P: http://www.retroleum.co.uk/ez80p/

the EZ80P is less suited to emulating classic 8-bit systems since the CPU (actually it is more of an MPU) is not 100% compatible with the Z80 (its peripherals are hardwired to certain ports, there’s different interrupt handling etc).

---------- Post added at 23:19 ---------- Previous post was at 23:07 ----------


нет, здесь речь о расширенном режиме, а в стандартном режиме работа процессора абсолютно идентична Z80
Откуда инфо? В терминологии доки в общем-то вообще нет никакого "режима совместимости с Z80", а есть "режим адресации памяти Z80" (Z80 memory mode). Т.е. этот "режим совместимости" влияет на адресацию и размер регистров, а про какие либо вариации в скорости исполнения - ни слова.

Z80 MEMORY Mode
When the ADL bit is cleared to 0, the CPU operates using Z80-compatible addressing and Z80-style, 16-bit CPU registers. This Z80 MEMORY mode is also occasionally referred to as non-ADL mode. Z80 MEMORY mode is the default operating mode on reset.
In Z80 MEMORY mode (or its alternate term, Z80 mode), all of the multibyte internal CPU registers are 16 bits. Also, the 16-bit Stack Pointer Short (SPS) register is used to store the stack pointer value.

Black_Cat
24.02.2012, 01:23
ts peripherals are hardwired to certain ports, there’s different interrupt handling etc

mastermind, не обижайся, но твои цитаты описываются русской пословицей: "гляжу в книгу - вижу фигу". Да, в eZ80 имеется встроенная периферия, с адресами портов не всегда совместимыми с тем или иным коипьютером, но сам процессор в стандартном режиме абсолютно ничем не отличается от Z80

mastermind
24.02.2012, 01:26
Ок, если мои цитаты такие кривые, процитируй тогда где сказано что:

в стандартном режиме работа процессора абсолютно идентична Z80
(в плане скорости исполнения, естественно)

P.S.: Народ, а может кто-то юзал живой eZ80 и считал такты? ;)

Black_Cat
24.02.2012, 01:48
процитируй тогда где сказано что

mastermind, мне это не нужно, когда мне было нужно, я изучил методичку, выяснил все подводные камни и способы их обхода, и пришёл к выводу, что eZ80 вполне применим в клонах Спектрума, и уж тем более применима его модель в FPGA, в которой можно подправить косяки с дешифрацией портов в eZ80 :) . Так что читайте методичку :)

WingLion
24.02.2012, 06:17
Снаружи это должна быть платка с 40 выводами, подключаемыми в панельку из-под стандартного Z80, чтобы воткнул в любой спек и работай,

Вот таким образом у меня была мысля сделать новый AY-8910.
Хотя, если на такую платку впихнуть ПЛИС, можно что любой нужный чип сэмулить. Проблемс только с преобразованием в 5-вольтовые уровни. но и это обходится. Для входов достаточно ограничивающих резюков, для выходов - надо правильные буферы ставить. А современные ПЛИС-ки в BGA-корпусах вполне поместятся на такую платку промеж рядов выводов...

А программный переход в новый режим сделать на команде RST 0 можно.


RST 0
db "New Z80 Mode N314"
И все... в старых прогах такая комбинация вряд ли встретится (и будет просто сброс по RST 0), а в новых будет переход в нужный режим процессора с возвратом по адресу из стека.

Vadim
24.02.2012, 06:23
Поддерживаю обеими руками, но с одним "но": Снаружи это должна быть платка с 40 выводами, подключаемыми в панельку из-под стандартного Z80, чтобы воткнул в любой спек и работай, только с новыми возмлжностями.

Не получится! Если делаем шину данных 16 бит (к примеру) - уже схема компа должна быть иной. Нужен арбитр ОЗУ. 2 линейки ОЗУ, одна - чётные адреса - вторая нечетные. Адресная линия А0 соответственно выбирает или одну или другую линейку, если мы запрашиваем 8 бит. У проца есть сигнал выходной который указывает на размер запрашиваемых данных, 8 или 16 бит. Если запрашиваем 16 бит с четного адреса, отдаем ему по байту из линеек. Проблема возникает когда адрес нечетный и проц запросил 16 бит. Тогда ему в ответ вернём 8 бит, по старшей части шины данных и другим сигналом указываем на эту ситуацию. Проц тогда должен сделать следующий цикл, инкрементировав адрес и запросив 8 бит. Это пример, что со стандартными 40-а ногами ничего не получится. И есть ещё куча огромная таких примеров. Но программно всё будет замечательно. Большая часть программ в новой системе будет работать ничего не замечая.

WingLion
24.02.2012, 06:31
Не получится! Если делаем шину данных 16 бит (к примеру) - уже схема компа должна быть иной.

здрасьте, я ваша тетя! Человек же сказал, что на платке с распиновкой под Z80, значит 16 бит шина в таком варианте идет лесом...

Просто пишите прямо, что хотите нe Z80, a i8086...




Не получится! Если делаем шину данных 16 бит (к примеру) - уже схема компа должна быть иной. Нужен арбитр ОЗУ. 2 линейки ОЗУ, одна - чётные адреса - вторая нечетные. Адресная линия А0 соответственно выбирает или одну или другую линейку, если мы запрашиваем 8 бит. У проца есть сигнал выходной который указывает на размер запрашиваемых данных, 8 или 16 бит.


Нужен арбитр ОЗУ. 2 линейки ОЗУ, одна - чётные адреса - вторая нечетные.

Две линейки ОЗУ при условии что

схема компа должна быть иной.
ГЛУПО...

Нафига козе баян? Есть прекрасные чипы серии K4S****, которые можно хоть вместе с ПЛИС на платку засадить и иметь сразу вместе с процессором... до 64 МЕГАбайт памяти. И никаких допотопных линеек

Vadim
24.02.2012, 06:41
А программный переход в новый режим сделать на команде RST 0 можно
Можно и так. Но лучше - установив нужные биты в управляющем регистре. Доступ к команде сделать можно хоть как, хоть ED FF NN NN. Хоть любой другой комбинацией. Вообще, всем присутствующим рекомендую прочитать документацию на процессоры: Z-180, Z-280, Z-380 и eZ80. Какие у них доп команды и режимы. Как в них переходить и обратно. Режимы адресации. Префиксы. Потом подумать, поразмыслить. Мне вот наиболее понравился из них Z-380, не в плане скорости, а по расширениям. ez80 может и более юзабельный во многих планах, но по расширениям команд и методов адресации он сильно уступает 380-му. И в каждом из этих процов есть что-то, что мне не нравится. Ну чем думали разработчики? У Z-380, к примеру, после перехода в режим 32 бита единственный способ вернуть режим z80 - это сигнал reset. Ну не тупость ли? У Z-180 Z-280 управление памятью делается записью во внутренние регистры командой out0. Из аккумулятора. Ну не тупость ли? Почему не ввести для этой цели регистры? и не загружать просто в них значения? Нет, я понимаю, что разницы по сути никакой, выдавать out в порт или загрузить в регистр, но в порт как то некрасиво. Порт выглядит как регистр внешнего устройства, а регистр процессора входит в процессор.

В любом случае, советую всем ознакомиться с документацией на процы, что бы не порождать флуд.

---------- Post added at 08:39 ---------- Previous post was at 08:38 ----------


значит 16 бит шина в таком варианте идет лесом...
Значит идёт лесом ускорение в 2 раза на той же тактовой.

---------- Post added at 08:39 ---------- Previous post was at 08:39 ----------


ГЛУПО...
Глупо делать из 8 данных /16 бит адреса конфетку. Не получится. Ничего не получится.

---------- Post added at 08:41 ---------- Previous post was at 08:39 ----------


которые можно хоть вместе с ПЛИС на платку засадить и иметь сразу вместе с процессором...
А зачем тогда вообще вся остальная плата компа? Если можно всё засадить туда? Какой смысл тогда?

WingLion
24.02.2012, 06:53
Значит идёт лесом ускорение в 2 раза на той же тактовой.

На той же - идет лесом... надо всего-то тактовую поднять в 10-20 раз, чтобы ускорение получить. А многоразрядные данные в SD-RAM читать в BURST режиме, на предельных частотах этих чипов (100-160MHz)


Глупо делать из 8 данных /16 бит адреса конфетку. Не получится. Ничего не получится.

Внутри оно будет совсем другим, нежели снаружи. Плюс к тому, любая версия в ПЛИС может быть обновлена в любой момент. вынули платку, перешили, и нате вместо Z80 хоть Z480...




А зачем тогда вообще вся остальная плата компа? Если можно всё засадить туда? Какой смысл тогда?

Дык, жить вообще вредно... После жизни все умирают... Так ЗАЧЕМ жить то?..

Можно в один чип весь Спектрум засадить... Поставил в панельку, запаял питание, подрубил разъемы с клавой, монитором, магнитофоном и вперед, к победе коммунизма, большого анонизма...



Ну не тупость ли?


Ну не тупость ли?

А вы где были, когда Zilog так тупил? Почему не подсказали им, как надо делать процы?!

Vadim
24.02.2012, 07:23
Плюс к тому, любая версия в ПЛИС может быть обновлена в любой момент. вынули платку, перешили, и нате вместо Z80 хоть Z480...

Ну оно как бы вытекает из названия темы, не так ли? Это само собой разумеющееся. Только вопрос то в другом совсем. Сейчас мы имеем стандартный Z-80. У него какие есть ограничения? какие неудобства? Да много. Как зметил ZEK - нет индексной адресации относительно регистра SP - это делает почти невозможной выборку данных со стека, используя SP как указатель, что бы не меняя его взять к примеру вот так. LD DE,(SP-20) - Кверху задом надо скакать и изворачиваться, тратя такты CPU на эти манипуляции. Деление у нас есть? Нет. Умножение быстрое? Нету этого ничего. Читаем описания Z-180, 280 380 & eZ80. Смотрим, чего там есть хорошего. А есть много чего. В том числе и шина 16 бит у Z-280, 380. И сигналов шины адреса там больше чем 16. У 280 их 24 у 380 - 32. Какая панелька 40 ног? Зачем? Если мы делаем новый проц, то сразу же отметаем старые платы. Напроч! Делаем новый клон. Новый спринтер, профи или АТМ. Неважно какой, но новый. Учитывая новые возможности! Иначе зачем весь сыр бор? К чему? Если мы так же заткнемся в 64К со страницами (максимум). Ну берите тот же T-80. Ускоряйте в 30 раз и радуйтесь. Добавьте пару новый команд для акселя и будет счастье.
Просто дело то в чем? Ну подняли мы тактовую в 20 раз. Ускорение на стандартном Z80 при отсутствии wait ов. - 20 раз. А если при этом у нас шина 16 бит, то почти в 40 раз!!! Это разве плохо? Да это замечательно! При всём при том, что софт этого совершенно не заметит! Команды как работали какие - так и будут работать, только быстрее. Для совместимости, вводим флажок в управляющем регистре, который выставляет тайминги команд z80 в соответствии с оригиналом. И если ставим частоту на проце 3.5 - вот вам проц на спектруме.

---------- Post added at 09:23 ---------- Previous post was at 09:23 ----------


Можно в один чип весь Спектрум засадить... Поставил в панельку, запаял питание, подрубил разъемы с клавой, монитором, магнитофоном и вперед, к победе коммунизма, большого анонизма...
И? К чему тогда тема то?

WingLion
24.02.2012, 07:33
К чему тогда тема то?
К разработке процессора, а не нового компа... про новый комп соседняя тема есть...
Там можно рассказывать банальности про ширину шины и сказки про замечательный Z380, которого, как и Змея Горыныча, никто в глаза не видел...

Vadim
24.02.2012, 07:36
и сказки про замечательный Z380
Не надо никаких сказок. Нужно описание Z-380? У меня имеется.

Totem
24.02.2012, 09:27
Ок, если мои цитаты такие кривые, процитируй тогда где сказано что:

(в плане скорости исполнения, естественно)

P.S.: Народ, а может кто-то юзал живой eZ80 и считал такты? ;)

у меня есть, аж 2 штуки и девборда.К сожалению время сейчас абсолютно нет. Серьезно заниматься им.

WingLion
24.02.2012, 17:27
Не надо никаких сказок. Нужно описание Z-380? У меня имеется.

Уже поймал в личке, но повторюсь, не интересен этот процессор. Потому что лишних наворотов много, а толку мало. Плюс полное отсуствие VHDL исходников этой железки. Их Zilog и не отдаст.

Короче, своя рубашка ближе к телу... поэтому будет свой процессор без попыток повторения Кота-В-Мешке...

alone
24.02.2012, 21:00
Я прикинул, описывать микрокод для 1024 команд не нужно, с декодера команд приходит достаточно информации, чтобы простой схемой адресовать 256 команд или даже меньше.

WingLion
24.02.2012, 21:12
Микрокод вообще идет лесом...
Делается несколько дешифраторов (основная и для префиксов ED,DD и FD) и мультиплексор для выбора исполняемой группы команд.

---------- Post added at 20:12 ---------- Previous post was at 20:10 ----------


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

А кому тут нужны сообщения с такими комментами?

KokaF77
24.02.2012, 21:14
Микрокод вообще идет лесом...
Делается несколько дешифраторов (основная и для префиксов ED,DD и FD) и мультиплексор для выбора исполняемой группы команд.

WingLion, поподробнее можно (ссылки на типовые решения и т.д.)? Мне это очень интересно, и нужно. :)

WingLion
24.02.2012, 21:21
Ссылок на "типовые" решения у меня нет.
Есть только вот такая: http://fforum.winglion.ru/viewtopic.php?f=3&t=2706&start=105 но это не про Z80...

KokaF77
24.02.2012, 21:49
Ссылок на "типовые" решения у меня нет.
Есть только вот такая: http://fforum.winglion.ru/viewtopic.php?f=3&t=2706&start=105 но это не про Z80...

Я это уже видел, правда бегло, сделал себе заметку - обязательно прочесть. И не только это..., интересно у Вас, есть что почитать-изучить.
Почему спрашиваю? Всю свою сознательную жизнь интересовался системами (процессорами) с микропрограммным управлением, и до сих пор тоже (BSP и иже с ними...). А вот в другую сторону как-то было не интересно смотреть.

---------- Post added at 21:49 ---------- Previous post was at 21:29 ----------

Недавно наткнулся на один интересный сайт (ссылку сейчас не приведу) там была реализация на ПЛИС некоего узла для одработки N-каналов ИКМ трактов. У меня волосы просто поднялись, как красиво это делается, да ещё в нескольких вариантах. После этой статьи стал поглядывать в сторону ПЛИС. Правда, есть одно большое УВЫ... - невозможно объять необъятное.

WingLion
25.02.2012, 04:25
А вот в другую сторону как-то было не интересно смотреть.


Есть только вот такая: http://fforum.winglion.ru/viewtopic....2706&start=105 но это не про Z80...

Немного соврал на счет того, что ничего больше нет. Есть еще вот такая статья: http://winglion.ru/ahdl/processor.htm и где-то лежит какая же, но с VHDL кодом. Ее-то я хотел в журнал отправить, но так и не сподобился...

Vadim
25.02.2012, 09:19
Потому что лишних наворотов много, а толку мало.
Это как? Как толку мало? Что понимаете под словом толк в данном случае? Хоть и техзадание на разработку не опуликовано, для себя я его понимаю так. Разрабатываемый проц должен уметь работать как минимум в 2-х режимах (условно говоря, режим на самом деле может быть и один).
1)Полная совместимость с z-80, по командам, методам адресации и времени исполнения
2)Расширенный режим. Больше адресует памяти, больше новых команд и методов адресации. Исполнение команд быстрее (в разы).

Под это определение подпадают все вышеуказанные процессоры. Но у каждого из них есть изъяны. Где в большей, где в меньшей степени.

Зачем нужен такой проц вообще? Я вижу его применение таким: делаем комп, на компе ОСь, которая обладает возможностями не ниже чем ms-dos на ПЦ, а можно и больше (пока ни одна поделка на спектруме и близко недотягивает). Ось позволит нормально (имеется ввиду полноценно) работать с ФС (хотя бы FAT 12/16/32) на различных устройствах. Полностью их поддерживать, без помощи ПЦ. (создание разделов и лог.дисков на hdd, форматирование карт памяти, форматирование и запись дискет, запись CD/DVD). Кроме того ОСь должна уметь эмулировать среду trdos для запуска trdos программ. (или +3dos). + желательна эмуляция tap/tzx. Что мы получаем? Комп, который без помощи ПЦ может использовать спектрум софт, может сам писать архивы на dvd, сам дефрагментировать винты. В расширенном режиме можно писать новый софт, игры, демы. Кто что хочет. Пока такого клона и ОСи нет. Все пользуются ПЦ с эмулятором. Именно это даёт необъодимый и удобный функционал для пользователя, а не реальный комп. А я желаю то же самое в реале.

WingLion
25.02.2012, 12:06
Это как? Как толку мало? Что понимаете под словом толк в данном случае? Хоть и техзадание на разработку не опуликовано, для себя я его понимаю так. Разрабатываемый проц должен уметь работать как минимум в 2-х режимах (условно говоря, режим на самом деле может быть и один).

Режимов, на самом деле может быть и 33...
Уже сейчас на моем прототипе их 8...




1)Полная совместимость с z-80, по командам, методам адресации и времени исполнения

С этим согласен, фанам угодить можно только так.



2)Расширенный режим. Больше адресует памяти, больше новых команд и методов адресации. Исполнение команд быстрее (в разы).

И с этим согласен. Не согласен лишь с тем, чтобы повторять чужие поделки, схарченные рынком в виду неконкурентоспособности.

Разумеется, никому не возбраняется заниматься ими, клепать клоны Z180/280/380 и т.д. ибо, как я сказал, режимов (читай прошивок для ПЛИС) уже сейчас тьма, а значит, свободе ничего не мешает. Но я буду сопротивляться и лягаться, если кто-то будет требовать, чтобы этими клонами занялся я сам. Мне они _не нужны_.
Ввиду совсем других интересов.

Куда двигать Z80, у меня есть свое видение, которое я и буду развивать не смотря ни на какие палки, которые мне в колеса торкают (не будем показывать пальцем на слоненков).

---------- Post added at 11:06 ---------- Previous post was at 10:06 ----------


Что понимаете под словом толк в данном случае?

Толком я называю отношение полученного результата к количеству вложенных усилий. Если первого мало а второго много - то толку нет.

Если для Z380 у меня нет ни софта, ни железа, то тратить время на его повторение - бесполезно.

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

Vadim
25.02.2012, 12:41
Если для Z380 у меня нет ни софта, ни железа, то тратить время на его повторение - бесполезно.
Повторяю сотый раз. Мне не нравится в том виде, в каком они есть или были, ни один из выше описанных процев. У всех есть некая "гадинка", "говняшка", которые не дают нам их использовать. У z-180, z-280 это периферия встроенная в проц и конфликтующая с портами компов (хотя там и можно их сдвигать, всё равно это не дело). Проблемы с несовместимостью memory mapper у 180 и 280. А самое главное, ОЗУ их ограничено 1 и 16 М соответственно. Расширить конечно можно, но это уже будет как бы через зад. Проц специально сделан так, что бы поддерживать 16М ОЗУ, а мы будем лепить некие внешние схемы что бы преодолеть этот барьер. Хотя конечно, 16М в рамках спектрума или другого ретро компа это очень много. У ez80 24 бит режим, а расширений команд почти нет. Нет там желаемого функционала. У Z-380 - огромный минус в том, что 64К/16 бит режим может работать только с первыми 64К. И по определению он только один, нельзя сделать несколько 64К кусков, в каждом из которых своя программа. Из 64К режима выход только по reset. Ещё один минус. Далее, в 32 бит режиме всё вроде замечательно, есть и новые команды, типа CALLR, JMPR (длинный JR) и др. Можно писать полностью релоцируемые программы, не привязанные к конкретным адресам. Но! Представим себе ситуацию, написали мы ОСь. Она занимает какую то часть ОЗУ, остальное - для загружаемых программ. Если система у нас однозадачная, то по сути вся система мало отличается от CP/M - MS-DOS и подобных, только адресное пространство 4 гигабайта. А если мы захотим многозадачность? Загрузили 5 модулей, а потом решили 2 модуля выгрузить из ОЗУ. Что имеем? 2 дыры. Как действовать в таком случае? Как менеджер ОЗУ должен выделять память? Если при следующем запросе подходит какая либо из дыр - отдаем то место. Но в любом случае, фрагментация ОЗУ растёт. И не может быть сама уменьшена. Как быть? В принципе выход один - делать время от времени дефрагментацию ОЗУ. Программы, несмотря на то, что код может быть весь относительным, могут содержать структуры данных, в которых уже 100% будет абсолютные ссылки. Их придётся пересчитывать дефрагментатору ОСи. Для этого программа должна декларировать такие данные. Что бы ОСь смогла передвинуть программу в ОЗУ. Всё это сложно и некрасиво.

---------- Post added at 14:41 ---------- Previous post was at 14:39 ----------


Куда двигать Z80, у меня есть свое видение, которое я и буду развивать не смотря ни на какие палки, которые мне в колеса торкают
Это конечно хорошо. Если в видении учтено всё. А так, есть люди которые могут что-то подсказать...

KokaF77
25.02.2012, 13:01
Куда двигать Z80, у меня есть свое видение, которое я и буду развивать не смотря ни на какие палки, которые мне в колеса торкают (не будем показывать пальцем на слоненков).
Поделитесь соображениями, пожалуйста.

WingLion
25.02.2012, 13:08
Повторяю сотый раз.

Зачем повторять-то? И так все давно ясно (не всем, но это уже второй вопрос).


Это конечно хорошо. Если в видении учтено всё.

Я все же не господь бог, и все учесть не могу.


А так, есть люди которые могут что-то подсказать...

И это хорошо. Только было бы еще не плохо, чтобы эти люди банальщину не преподносили как великое откровение...

Atari
25.02.2012, 13:08
без помощи ПЦ. (создание разделов и лог.дисков на hdd, форматирование карт памяти, форматирование и запись дискет, запись CD/DVD)
это достаточно забавно требовать от проца с изначальным адресным пространством в 64К


А если мы захотим многозадачность? Загрузили 5 модулей, а потом решили 2 модуля выгрузить из ОЗУ. Что имеем? 2 дыры. Как действовать в таком случае? Как менеджер ОЗУ должен выделять память?
"менеджер" это софт а не сам проц.
изучите v86 в i386 у вас отпадет множество вопросов.

Vadim
25.02.2012, 13:14
"менеджер" это софт а не сам проц.
Пляяя. Умник проспался. Да уж конечно всё мы это знаем. А то что я написал, поясняет, что если у нас нет виртуальных адресных пространств, то всё становится вот так сложно.

изучите v86 в i386 у вас отпадет множество вопросов.
Изучено ещё в 1997г. И от него и отталкиваемся. Или про "дыры" и фрагментацию непонятно вам? Советую подумать, поучить мат часть и уж потом пытаться комментить. Ясен х. что если у нас есть вирутальные адресные пространства, то таких проблем не будет. Но в z-380 нет страничной организации памяти. Нет каталогов страниц. Нет этого ничего. А что есть, какую среду можно построить я описал. Зачем лезти ко мне тут с v86? Зачем? А есть ещё и более другие процы и что?

---------- Post added at 15:14 ---------- Previous post was at 15:12 ----------


изучите v86 в i386 у вас отпадет множество вопросов.
Его и возьмём на вооружение, да?! И построим ПЦ. И тему считаем закрытой, да?

---------- Post added at 15:14 ---------- Previous post was at 15:14 ----------


это достаточно забавно требовать от проца с изначальным адресным пространством в 64К
Вам забавно, а нам реально. Т.к. мы знаем, что это возможно. Хоть и сложно, но можно.

WingLion
25.02.2012, 13:17
Поделитесь соображениями, пожалуйста.

Одно из соображений я уже высказывал вначале темы. - Внедрение в процессор акселератора Спринтера. - Кто бы там и плакался, что "это фигня", он просто не понимает о чем речь.

Акселератор Спринтера - это расширитель, позволяющий работать с данными большой разрядности (расширение шины на 16 и 32 - это детский сад). И, если в Спринтере были только простейшие операции над массивами, то расширяя это направление можно придти к операциям над матрицами, 3D-ускорению и т.д. и т.п. Короче, идея вполне себе нормальная, несмотря на...

Другое соображение заключается в интеграции процессора с контроллером памяти, когда времянки старого Z80 идут лесом, и все делается на рабочих частотах SD-RAM (в перспективе DDR,DDR-II и т.д.) Сам проц на такой частоте будет делать минимум операций, и весь упор будет на все тот же акселератор, который ускорится за счет увеличения тактовой частоты памяти и BURST-выборок.

Vadim
25.02.2012, 13:21
Кто бы там и плакался, что "это фигня", он просто не понимает о чем речь.

Да уж конечно, куда нам... Какая разница, коамндой rst 0 мы дадим команду акселю или закинув в порты значения? Ну во втором случае чуть потеряем в тактах и что? Если мы к примеру делаем переброску массива в 4096 байт, а подготовка будет не 16 а 32 такта, это смертельно? Нет конечно. Можно и интегрировать, но глобальных ускорений и улучшений это не даст.
А вот что действительно надо, так мат.сопроцессор, хотя бы такой как в Z-280. Когда минус будет считаться за 2 такта, тогда можно уже говорить о 3D-графике.

Atari
25.02.2012, 13:23
Ясен х.
это вы "кратко о себе"?



Но в z-380 нет страничной организации памяти
мне казалось что кто-то хотел разработать свой проц на основе z80 а не копировать z380.
зачем вам страницы? для свопа?
если построить возможность организации Vz80 машин, то каждая из них будет жить в своем 64К сегменте, думаю 4...16 МБ оперативы будет вполне достаточно для некоего к-ва виртуальных машин без использовании страничной адресации.

если вам тах хочется 4ГБ прямогоадресного пространства, то извольте разьяснить нам как вы собираетесь вписать это в 100% совместимость с z80 ?

WingLion
25.02.2012, 13:28
изучите v86 в i386

Слющ, зачэм оффотопики втюхиващь? Давай исправляй на мотороллер-68000 все!

---------- Post added at 12:28 ---------- Previous post was at 12:24 ----------


Да уж конечно, куда нам... Какая разница, коамндой rst 0 мы дадим команду акселю или закинув в порты значения? Ну во втором случае чуть потеряем в тактах и что? Если мы к примеру делаем переброску массива в 4096 байт, а подготовка будет не 16 а 32 такта, это смертельно? Нет конечно. Можно и интегрировать, но глобальных ускорений и улучшений это не даст.

В таком ключе что-то и разговаривать желание отпало...




А вот что действительно надо, так мат.сопроцессор, хотя бы такой как в Z-280. Когда минус будет считаться за 2 такта, тогда можно уже говорить о 3D-графике.

Блин, Ведь 5 МИНУТ НАЗАД писал:


Только было бы еще не плохо, чтобы эти люди банальщину не преподносили как великое откровение..

Vadim
25.02.2012, 13:32
Сам проц на такой частоте будет делать минимум операций, и весь упор будет на все тот же акселератор, который ускорится за счет увеличения тактовой частоты памяти и BURST-выборок.
Это всё понятно, но к теме проца соотносится мало. Аксель мы можем сделать любой. В данной теме мы его не рассматриваем. Здесь рассматриваем процессор. Но в общем смысл я темы понял. Решение уже есть. Зачем тогда обсуждать? Это как разведка - очень дорогой способ сказать президенту о событиях в другой стране его собственное мнение. Проц берём T80 интегрируем пару "новых" команд, для управления акселем и радуемся. Мне такая система не интересна. Проц по сути остался тем же.

---------- Post added at 15:30 ---------- Previous post was at 15:29 ----------


если вам тах хочется 4ГБ прямогоадресного пространства, то извольте разьяснить нам как вы собираетесь вписать это в 100% совместимость с z80 ?
Мне уже не интересно, но скажу, читаем манул по z-380. Там написано как. Поверьте - реализовано уже.

---------- Post added at 15:32 ---------- Previous post was at 15:30 ----------


Блин, Ведь 5 МИНУТ НАЗАД писал:
Мдааа. Самомнение что пипец. Преподносим идею акселя с доп. командами в z80 как некое откровение... Капец. Аналогичное вообще ты было сделано в GameBoy ещё в начале 90-х. И что? Это великое откровение? Самокритику бы вам поднакрутить не мешало.

WingLion
25.02.2012, 13:33
Проц берём T80 интегрируем пару "новых" команд, для управления акселем и радуемся. Мне такая система не интересна. Проц по сути остался тем же.

Опять-двадцать пять... Какая нафиг пара команд?


В данной теме мы его не рассматриваем. Здесь рассматриваем процессор.

Не надо говорить за всех! (с) FIDO...

Если не понятно, то весь разрабатываемый новый Z80 - это один большой Аксель!
А с T80 - в сад...

Vadim
25.02.2012, 13:42
Опять-двадцать пять... Какая нафиг пара команд?
8 команд. 16. И что? Команды передачи данных акселю и обратно. Не так что ли? Образно говоря - пара команд. Это НЕ глобальные дополнения в проце, это просто короткий костыль для пинания периферии. И что?

---------- Post added at 15:37 ---------- Previous post was at 15:36 ----------


то весь разрабатываемый новый Z80 - это один большой Аксель!
Ясно. Толку от него будет не больше чем новых конфигураций для недоэвы. Уж поверьте.

---------- Post added at 15:42 ---------- Previous post was at 15:37 ----------

В общем. Путь есть короче. Зачем велосипед изобретать? Берём 3D карту с ПЦ, делаем интерфейс (AGP, PCI, PCI-X или какой там ещё), делаем так, что бы мы смогли увидеть ее программно, что бы можно было пересылать параметры туда и обратно. Всё! Эврика! Изобретение века. Это и видеокарта, и аксель и мат сопроцессор. Зачем нам нужен новый проц? Делаем в ядре команды для более удобного обмена данными с видяхой и всё. Мы просто супер разработчики!

WingLion
25.02.2012, 15:18
8 команд. 16. И что? Команды передачи данных акселю и обратно. Не так что ли? Образно говоря - пара команд. Это НЕ глобальные дополнения в проце, это просто короткий костыль для пинания периферии. И что?
Зачем бредить о том, чего не знаете?




Ясно. Толку от него будет не больше чем новых конфигураций для недоэвы. Уж поверьте.

Не поверю. Мне так же говорили, что я Спринтер не сделаю, что PCI шину не сделаю, что SD-RAM контроллер не сделаю... и таких примеров тьма... когда кто-то заявлял, что нечто один человек сделать не может, а на поверку оказывалось наоборот. (про ракету, построенную в сарае, даже не вспоминаю)




Зачем велосипед изобретать? Берём 3D карту с ПЦ, делаем интерфейс

Берите и делайте! А меня в это г... не втягивайте.

Vadim
25.02.2012, 15:26
Берите и делайте! А меня в это г... не втягивайте
Мне это не надо. Я против этого. Да, аксель нужен, но не нужно всё это на отдельной панели с ОЗУ, втыкаемое в плату спектрума. Смысла нет. Как уже писал плата спектрума в таком случае зачем вообще? Если мы всё сделаем на платке, на которой будет и ОЗУ и ПЛИС, в которой проц +аксель? Зачем остальной комп?

---------- Post added at 17:26 ---------- Previous post was at 17:22 ----------


Мне так же говорили, что я Спринтер не сделаю
Он стал массовым? Нет. Почему? Я знаю почему. Не хватало там кое-чего, что было нужно. Сейчас идёт дубль два. Автор не желает слышать ни каких мыслей. Он заранее знает как надо. Не получится ли так же как и со спринтером?

WingLion
25.02.2012, 15:29
но не нужно всё это на отдельной панели с ОЗУ, втыкаемое в плату спектрума.

Первый пост темы перечитайте заново, плиз...



Если мы всё сделаем на платке, на которой будет и ОЗУ и ПЛИС, в которой проц +аксель? Зачем остальной комп?

В этом случае, будет не "платка", а полноценный комп... для которого понятие "остальной комп" не имеет смысла...

---------- Post added at 14:29 ---------- Previous post was at 14:27 ----------


Не хватало там кое-чего, что было нужно.

Все то вы знаете...
Тогда почему не пришли в Петерс в 1993-м году и не рассказали, что нужно? Поленились?

Vadim
25.02.2012, 15:30
Первый пост темы перечитайте заново, плиз...
Результат то всё же какой? Проц. Висящий в воздухе он нужен? Нет. Не нужен. Где применять? В ретрокомпе наверное? Ну наверно да. Так? И т.д. и т.п.

В этом случае, будет не "платка", а полноценный комп... для которого понятие "остальной комп" не имеет смысла...
именно.

WingLion
25.02.2012, 15:30
Автор не желает слышать ни каких мыслей.

Автор не желает слушать заведомый бред, осуждающий нечто, что даже не сделано.

Vadim
25.02.2012, 15:31
Все то вы знаете...
Тогда почему не пришли в Петерс в 1993-м году и не рассказали, что нужно? Поленились?
Хммм. Я бы пришёл и пообщался, но не мог, т.к. живу за тысячи км. от вас. Да и информации почти не было, я в то время даже не знал, что спринтерами занимается петерс.

WingLion
25.02.2012, 15:34
Результат то всё же какой? Проц. Висящий в воздухе он нужен? Нет. Не нужен. Где применять? В ретрокомпе наверное? Ну наверно да. Так? И т.д. и т.п.
Ретрокомп идет лесом, это даже не моя идея... А вы выдумали глупость и сами же осуждете то что выдумали, обвиняя в этом меня.

Ewgeny7
25.02.2012, 15:36
WingLion, обратите внимание - с Vadim'ом кроме вас больше никто не спорит. К чему бы это? ;)

WingLion
25.02.2012, 15:37
Хммм. Я бы пришёл и пообщался, но не мог, т.к. живу за тысячи км. от вас. Да и информации почти не было, я в то время даже не знал, что спринтерами занимается петерс.
В то время было несколько встреч со спектрумистами, которым задавался вопрос - а чего хотите еще?
Вот, какие хотелки были, такие и сделали. Плюс сверх того...
Спринтер ушел из-за экономического развала в стране, а не потому что там чегого-то не хватало. Иначе сейчас у меня чистые платы Спринтера не выкупали бы пачками.

---------- Post added at 14:37 ---------- Previous post was at 14:36 ----------


WingLion, обратите внимание - с Vadim'ом кроме вас больше никто не спорит. К чему бы это?

Да, я в курсе о том, что я - дурак...

Vadim
25.02.2012, 15:40
Цель - получение не абсолютной копии Zilog-овского Z80, а быстрой версии (в пределе 1 такт на команду), в которую при желании можно вставлять свои команды (я вот, хочу прямо вставить в него команды акселератора Sprinter-a)

Канэш, ретрокомп идёт лесом. Комп на z80 (модифицированном) это последнее слово в компьютеростроении. Безусловно. Я ничего не выдумал. Делаю выводы по вашим постам. Телепатией не обладаю.

---------- Post added at 17:40 ---------- Previous post was at 17:37 ----------


Спринтер ушел из-за экономического развала в стране, а не потому что там чегого-то не хватало.
Да нет. Причин много, основная - цена. Слишком высока. Далее - не совсем полная совместимость с спектрум 128 + trdos (насколько я знаю). Почти полное отсутствие софта в расширенном режиме. Бесполезная ось (без софта). Вот основные причины. Ну и последняя (для всех одна) - года с 1995-го шёл закат всего спектрумизма.

Raydac
25.02.2012, 22:23
Спринтер ушел из-за экономического развала в стране, а не потому что там чегого-то не хватало.
ну если я правильно помню, основная проблема была не в цене и не в элементной базе, проблема была в том что г-н Медноногов сказал что он начнет писать для данной платформы только когда продажи перевалят за 300 штук ))) Носков всё ждя лчто энтузиасты начнут писать софт, но это были не те времена, софт писать это сложнее железа тогда и теперь

Vadim
25.02.2012, 22:47
софт писать это сложнее железа тогда и теперь
Сомнительно, что одно сложнее другого. Другое дело, когда платформа не получмла широкого распространения, тогда у софтописателя нет мотивации. А в 90-е, спринтер был мало распространён в силу высокой (мягко сказано) цены. Когда я увидел характеристики спринтера в ZX-Ревю, то конечно же захотел такой комп, но увидев цену понял, что он явно не для меня. Сейчас уже конечно точно не сказать, но как мне помнится, то немного добавив можно было купить ПЦ. Я всё понимаю, почему цена высока. И именно по этому, авторы Профи, к примеру, не пошли по аналогичному пути. Их ответ был такой - комп будет слишком дорог и не будет востребован. Сколько кстати, Спринтеров было выпущено? Я не зная данных, могу сделать предположение что не более 150-200. Уже в 2002 году примерно, добравшись до инета я нашёл сайт петерс, увидел цены и ещё раз офигел. В то время плата стоила чуть ли не месячную з/п.

Black_Cat
25.02.2012, 23:01
Да нетДа да, экономический развал имел место, типо дефолта 98, в результате которого платежеспособность у любителей ретрокомпов просто исчезла. Но это было всё же не основной причиной, а только последним гвоздём в крышке гроба :) . Основная причина - это конечно то, что компьютер всё же опоздал, и упустил своё время, и этого уже не вернуть абсолютно никак.

не совсем полная совместимость с спектрум 128

Vadim, Спринтер - это именно та часть, которая не имеет никакого отношения к Спектруму, и именно эта часть является истинно ценной, а режимы совместимости можно вообще выкинуть.

---------- Post added at 23:01 ---------- Previous post was at 22:57 ----------


не более 150-200убери нолик и получишь более реальную цифру :)

Vadim
25.02.2012, 23:26
в результате которого платежеспособность у любителей ретрокомпов просто исчезла. Но это было всё же не основной причиной, а только последним гвоздём в крышке гроба
Я в 1998-м наоборот, воспринял дефолт иначе. Цена ПЦ возросла минимум в 3 раза и я думал тогда, что это вернёт массы на ниву спектрума. Но этого почему то не произошло.


Основная причина - это конечно то, что компьютер всё же опоздал, и упустил своё время, и этого уже не вернуть абсолютно никак.
Здесь согласен. И я со своей системой аналогично опоздал. Если бы всё это лет так на 5-6 ранее, тогда более менее был бы спрос и развитие. Но я ранее на 5 лет просто не обладал необходимой квалификацией и знаниями. Ведь не секрет - информации не было, не было ни доков ни вообще инфы о том, что есть. Это главный минус того времени. Но что было - то было. Изменить мы это не можем. ПЦ в тот момент был слаб в плане игр и мультимедиа, но они владели ситуацией, у них были в руках все карты. А те же Коммодоры и Атари просто прошляпивали время и всё упустили. Пирог у них забрали прямо из под носа. Это факт. Наша страна варилась в своём собственном соку. И благодаря ему мы собственно и стали теми кем сейчас являемся. Но всё же. Ретромашину, с хорошими возможностями создать можно и она будет интересна многим.

---------- Post added at 01:26 ---------- Previous post was at 01:07 ----------


Спринтер - это именно та часть, которая не имеет никакого отношения к Спектруму, и именно эта часть является истинно ценной, а режимы совместимости можно вообще выкинуть.
Сомневаюсь. Опять же, Спринтер разрабатывался и преподносился как "супер-спектрум". Не так ли? Т.е. Мы имеем и стандартный спектрум и новый "продвинутый" режим. И это правильно. Это путь Профи и АТМ. Только вот ни у одной из указанных платформ не получилось в то время сделать желаемое. То, что я описывал выше. Расширенные режимы мало что давали. В плане Спринтера так вообще почти ничего. Софта в расширенном режиме почти не было, а зачем платить "дикие" деньги ради призрачной возможности? Это был второй антиаргумент для потенциальных пользователей, после цены. Разве не так? Главная ошибка разработчиков софта была в том, что они отмели напрочь софт CP/M. Сказав, что это дескать допотопные вещи и никому не нужные. Не предоставив адекватной им замены. Эмулятор cp/m некий был, но всё же это было не то.

Raydac
25.02.2012, 23:58
в спринтере самое ценное - была идея заюзать плис как основу всего и дать возможность менять всю архитектуру компа под задачу с частотой до двух раз в секунду, это было то что меня впечатлило.. как суперспектрум спринтер не тянул так как не давал супервозможностей спектрумистам, что бы цельно заюзать его супервозможности нужен был Иван + MAX II ))) это очень дорогой дистрибутив для рядового спектрумиста

Black_Cat
26.02.2012, 00:57
Спринтер разрабатывался и преподносился как "супер-спектрум". Не так ли?не более чем замануха для спектрумистов. "Спектрумом", или клоном Спектрума, можно считать только эволюционное развитие оригинального Спектрума. Соответственно АТМ и Спринтер нисколько не эволюционное развитие Спектрума, т.к. создавались с нуля именно под свою идеологию, а потом уже к фактически самостоятельным компьютерам прилепили режимы совместимости, исключительно из маркетинговых соображений. Например, если из АТМ выкинуть спектрумовский аппендикс, то собственно на СР/М компьютере, которым он и является, это вообще никак не скажется.


Мы имеем и стандартный спектрум и новый "продвинутый" режим. И это правильно. Это путь Профи и АТМ

Vadim, в отличие от АТМ, который родился из ничего, и является совершенно самостоятельным и самодостаточным компьютером, Профи - это творческая переработка концепции +3. В Профи реализован один в один подход к архитектуре, впервые применённый в +3, но т.к. над нашими разработчиками не висел домоклов меч копирайта, то они не стали заморачиваться, изобретая своё, а просто украли CP/M :) . .Т.е. Профи - это эволюционное развитие концепции +3, в отличие от АТМ и Спринтера, которые являются развитием самих себя :) . Для Профи, в отличие от АТМ и Спринтера, можно проследить эволюционный путь заложенной в него концепции: Profi -> ZX Spectrum +3 -> ZX Spectrum 128 -> ZX Spectrum. Поэтому АТМ и Спринтер относятся не к клонам Спектрума, а к компьютерам имеющим в той или иной степени совместимость со Спектрумом, но при этом являющимися абсолютно самостоятельными и самодостаточными компьютерами, не являющимися эволюционным развитием Спектрума :) . Но это нисколько не умаляет их значимости как самостоятельных компьютеров. Так что "путь у Профи и АТМ" абсолютно разный :) , и это необходимо понимать :) .

В плане Спринтера так вообще почти ничего. Софта в расширенном режиме почти не былоСпринтер просто опоздал, но внедрялся он по совершенно классическим канонам, т.е. к нему сразу разработали ось, в отличие от Спектрума :) , и он этим ценен.

caro
26.02.2012, 08:56
На opencores и прочих интернетах Т80 не полностью пофикшеный. Самый совершенный вариант хранится исключительно на нашем форуме :)
Автор Speccy-2010 syd в своем проекте допилил Т80 до состояния совместимости. Немного позднее эта версия Т80 была использована в проектах uX-Speccy. Нигде более оно не выкладывалось. Качество симуляции видно по "критичным" программам, использующим времянки настоящего Z80 для построения изображения (сложные демки).Посмотрел твой прект U10_Speccy: http://zx.pk.ru/attachment.php?attachmentid=24895&d=1297330722
Если я правильно понял в нем как раз используется "допиленный" T80 от syd?
А где в нем правки, улучшающие совместимость с реальным Z80? В исходнике нигде нет ни одного упоминания об изменениях.

Ewgeny7
26.02.2012, 14:32
Если я правильно понял в нем как раз используется "допиленный" T80 от syd?
Да, верно.


А где в нем правки, улучшающие совместимость с реальным Z80? В исходнике нигде нет ни одного упоминания об изменениях.
Этот вопрос syd'у я не задавал. Аффтар долго домучивал Т80, пока не заработали правильно все программы, которые ему присылали в багрепортах. На сегодня жалоб на работу "критичных" демок вроде как нету. Где именно, и что именно изменялось - я не знаю. Помнится, были исправления с WAIT и командами-автоматами INIR, OTIR. Прицепом добавилась возможность "аппаратного прерывания", это видно по дополнительным сигналам. Что еще правилось - не знаю.

alone
26.02.2012, 14:57
Я прямо уже вижу горы софта под +3, которые работают на Профи. Самому не смешно?

---------- Post added at 13:57 ---------- Previous post was at 13:54 ----------

А растактовки зачем? Что, уже игры под мультиколор появились? Может, лучше писать игры под нормальные видеорежимы?

Black_Cat
27.02.2012, 01:19
Я прямо уже вижу горы софта под +3, которые работают на Профи. Самому не смешно?Дим, ну ты же местами совсем не глупый товариСЧ :) , ну дык зачем же дурочку-то валять?

alone
27.02.2012, 07:40
Твой бред про АТМ-Турбо слышали уже много раз. Профи - машина того же класса, только кривая, но у тебя почему-то она выходит православнее патриарха Кирилла. Интересно, чем объясняется такое двоемыслие? Может, тем, что АТМ-Турбо у тебя нет, а Профи есть?

Sayman
27.02.2012, 07:46
к слову сказать - разрабы профи никаких цпм не крали. исходники оригинала доступны были даже в начале 90х годов. и если вспомнить, у профи кроме трдоса больше ничего из осей и "осей" не прошито. а вот в атм цпм прошита в пзу. хотя и тут сказать что они украли не совсем корректно. нельзя украсть то, что бесплатно и общедоступно. касательно сабжа. всётаки наличие такта на каманду было бы иметь просто замечательно, и конечно же иметь каманды умножения и деления. каманды управления акселем не столь важны. более важно в новом спринтере уделить внимамние шине и памяти, звуку, графике, диспечеру памяти, аксель усовершенствовать, полноценный компорт, пс2 для клавы и мыши..так помелочам...а иметь в проце каманды для акселя...зачем? лишняя трата вентелей...

---------- Post added at 10:46 ---------- Previous post was at 10:41 ----------


Профи - машина того же класса, только кривая,
доказательство в студию. ваши аргументы?

alone
27.02.2012, 10:54
512 точек вместо 640 (это в CP/M машине-то!). Нет режима "цвет на точку". Нет 4 окон памяти.

Sayman
27.02.2012, 11:02
512 точек вместо 640 (это в CP/M машине-то!).
не критично. если говорить про текстовые режимы, то 64 или 80 символов в строке для терминала достижимо. тем более что строк больше чем у атм. для графики более чем за глаза (тем более без всяких ускорений, а экраны что на атм что на профи жрут всю страницу).

Нет режима "цвет на точку".
в той реализации которая есть на атм, оно нафиг бы и не надо.

Нет 4 окон памяти.
с этим пунктом да, согласен. учень не хватает. но кроме этого у профи есть ряд приимуществ. как например палитра не 64 цвета (атм), а 256 цветов. полный доступ к вг93 в любом адресном пространстве проца и так ещё по мелочи. кстати, при небольшой доработке, можно использовать 3й свободный канал ВИ53.
но кроме всего прочего неоспаримым приимуществом являеца сборка машины. собрал по схеме, включил - работает.
атм собрал по схеме, включил - получил дым (в худшем случае) или нифига вообще (в лучшем случае).

alone
27.02.2012, 12:45
в той реализации которая есть на атм, оно нафиг бы и не надо.
Игры как бы намекают, что надо.


полный доступ к вг93 в любом адресном пространстве проца
Это и в АТМ есть. Достаточно включить скрытые порты через системный порт.


кстати, при небольшой доработке, можно использовать 3й свободный канал ВИ53.
В АТМ при небольшой доработке (перешивке микроконтроллера) можно сделать даже программируемые прерывания. Только это никому оказалось не надо.

Sayman
27.02.2012, 13:01
Игры как бы намекают, что надо.
те пара - тройка игр которые висят у тебя на сайте ниначто не намекают. цвет на точку да хотелось бы, но не в том виде как это есть на атм. к слову говоря, режим 16ц (который 256*192) можно прикрутить и к профи и к любому другому клону. только как жто видно по тоннам игр и демок, это тоже никому не надо в том виде в каком оно есть сейчас.

alone
27.02.2012, 17:40
Вообще-то этих игр более 20.

Sayman
27.02.2012, 18:01
пока суммарно по твоему сайту и по сайту атм насчитал примерно 12. если откинуть крестиконолико подобные, минёры и тетрисы, то примерно 5,5. если не трудно, огласи список и линки на игры. а то шарюсь по двум сайтам в поисках таких игр...

Black_Cat
27.02.2012, 20:59
Профи - машина того же класса, только кривая, но у тебя почему-то она выходит православнее патриарха Кирилла. Интересно, чем объясняется такое двоемыслие? Может, тем, что АТМ-Турбо у тебя нет, а Профи есть? нет, можно сказать что у меня нет ни того, ни другого :) (Профи есть, но неживой), но твой ход мыслей тебя выдаёт :) . Т.е. ты считаешь, что все действуют подобно тебе. В своё время Диме плотно проехала по ушам НедоПЦ на счёт "NedoATM - это светлое будущее Спектрума", а он, ввиду молодости и недостатка знаний, купился на это. А теперь, малость повзрослев, его мозги напрочь закостенели для любых взглядов отличных от его детских воспоминаний. А кто-то ещё сетует на ветеранов, таскающих плакаты с портретом Сталина :) . У Димы свой Сталин - NedoATM :)

---------- Post added at 21:59 ---------- Previous post was at 21:49 ----------


512 точек вместо 640 именно потому, что это и есть эволюционное развитие Спектрума, а не хрен знает что взятое с потолка типо АТМ


Нет режима "цвет на точку". Нет 4 окон памяти. Нет - значит авторы посчитали это неоправданным усложнением. Кому надо - берёт паяльник и добавляет всё, на что хватит фантазии :)

alone
27.02.2012, 23:15
пока суммарно по твоему сайту и по сайту атм насчитал примерно 12. если откинуть крестиконолико подобные, минёры и тетрисы, то примерно 5,5. если не трудно, огласи список и линки на игры. а то шарюсь по двум сайтам в поисках таких игр...
Трудно. Один Transman три игры написал.

---------- Post added at 22:13 ---------- Previous post was at 22:11 ----------


Кому надо - берёт паяльник и добавляет всё, на что хватит фантазии
Типичный взгляд недоучки-радиолюбителя. Ценность решений в единственном экземпляре равна нулю.

---------- Post added at 22:15 ---------- Previous post was at 22:13 ----------


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

Black_Cat
27.02.2012, 23:24
После радиолюбительских ковыряний паяльником - естественно.:) нет, так подарили


Типичный взгляд недоучки-радиолюбителя:) и это говорит человек, закорачивавший ножки микросхемам :)


Ценность решений в единственном экземпляре равна нулю.тебя же это не смущало, когда ты ковырял 384х304, 16с, и т.д. :)

alone
28.02.2012, 00:15
Когда я ковырял 384х304, 16с и т.д. - это были временные решения для конкретных задач. И они, между прочим, эмулируются.

Sayman
28.02.2012, 05:31
кстати говоря, профи и его девайсы и режимы тоже эмулируются. но при этом, стоит ради справидливости отметить, что режим 640 точек взят был не с потолка. это стандартное цга разрешение, 640 и 320 точек. тут с чёрным котэ не соглашусь.

Трудно. Один Transman три игры написал.
ну, чисто по названиям если, что я нашол ихз вминяемых игр:
Ball Quest, Prince of Persia, Goblins, Magi Squares, Time Gal и Pang 16C (не уверен что для атм). демок тоже не великие тонны. пожалуй под экран профи игр побольше будет.

alone
28.02.2012, 13:06
И какие есть игры под экран профи?

Sayman
28.02.2012, 13:46
шипко похвастать нечем, т.к. игры прошлого века.
single warrior, king`s valley, peep show, waterfall, lode runner (с поддержкой паллитры), какакя то space com, dead world, примерно 7 или 8 игр портированных/адаптированных с мсх и других платформ (например xyzolog, eric, express), pacman ( ^_^ )...ещё с пяток всякой мелочи на которую особо не смотрел, так же как и на подобные мелкоигры на атм.

Ewgeny7
28.02.2012, 14:10
Всё как обычно. Начали про Z80 на VHDL, закончили экранами Профи и АТМ.

alone
28.02.2012, 14:16
Где эти игры можно скачать?

Rindex
28.02.2012, 15:55
Где эти игры можно скачать?

http://zx.pk.ru/showpost.php?p=423980&postcount=89

Папки Games и Sayman_collections (а там опять Games)

Black_Cat
28.02.2012, 18:45
стоит ради справидливости отметить, что режим 640 точек взят был не с потолка. это стандартное цга разрешение

Sayman, какое отношение CGA имеет к Спектруму? Никакое. Аналогично и АТМ, юзающая не спековские разрешения. Кроме CGA есть ещё MDA, EGA, VGA, SVGA, XGA и т.д. стандарты не имеющие отношения к Спектруму, т.к. не являются эволюционным развитием его экрана. А вот расширенный экран Профи вполне таки является эволюционным развитием Спектрумовского, т.к. сам Профи это изначально именно Спектрум с дополнительным CP/M режимом, а не хрен знает что с дополнительным спектрумовским режимом, как АТМ.

KokaF77
28.02.2012, 18:52
Всё как обычно. Начали про Z80 на VHDL, закончили экранами Профи и АТМ.
Вот вот... Похоже, что и во флейме надо подраздел флейм создать!
Тему и так слили, а тут похоже и вообще в унитаз скоро можно будет спускать... Грустно... :( Ещё одну тему из подписки можно выбрасывать... :(

Black_Cat
28.02.2012, 19:03
это были временные решения для конкретных задач. И они, между прочим, эмулируютсяу тебя очень специфичная логика, чтоб можго было просто так понять к чему это сказано :)

Black_Cat
28.02.2012, 21:59
Цель - получение не абсолютной копии Zilog-овского Z80, а быстрой версии (в пределе 1 такт на команду), в которую при желании можно вставлять свои команды (я вот, хочу прямо вставить в него команды акселератора Sprinter-a)Для Спринтера такой процессор скорее всего пригоден, т.к. над ним не довлеет рок из маньяков-демописателей и 100500 криво написанных дем, с кривой растактовкой, кривыми портами и недокументированными командами, как на Спектруме :) . Для Спектрума же надо делать только абсолютную копию.

С точки зрения идеологии, самое правильное решение - это точная копия Z80 + переключение в расширенный режим, как например сделано в eZ80

---------- Post added at 22:59 ---------- Previous post was at 22:54 ----------

Имхо, идеальный вариант - скопировать один в один eZ80, но без периферии, и исправить ему дешифратор внутренних портов.

vlad
28.02.2012, 23:31
Имхо, идеальный вариант - скопировать один в один eZ80, но без периферии, и исправить ему дешифратор внутренних портов.
Похожая тема так и осталась нерешенной [http://zx.pk.ru/showthread.php?t=1052]
Один в один не получиться, могут появиться вопросы. Открыть к примеру проект eT80 можно на OpenCores и хоть попробовать начать изучать документацию...

WingLion
29.02.2012, 06:30
Для Спектрума же надо делать только абсолютную копию.


Вот, пусть маньяки и выманьякиваются...
Если в нормальную ПЛИС изначально записать новую версию проца, никто не помешает его даунгрейду...
А Апгрейду может помешать ограниченность ПЛИС.

Ewgeny7
01.03.2012, 13:40
А Апгрейду может помешать ограниченность ПЛИС.
Какая?

vlad
01.03.2012, 15:01
А Апгрейду может помешать ограниченность ПЛИС.
Наверно имеется ввиду емкость, т.е. ограничение фантазии в LC.
Просмотрел описание eZ80, шансы создать soft-core по аналогии Т80 есть, но желание самому и для себя возится не появляется. Понравилась реализация конвейера команд, скорость обмена с SRAM памятью ограничивается 50МГц. Для работы со страничным режимом SDRAM (кеш) проц не предназначен, хотя можно что-то придумать. В общем, если даже корка и будет, то ее применение возможно ограничится в реплике EZ80P @ Retroleum. Эта платформа хоть грамотно развивается.
[http://www.youtube.com/watch?v=Cbpt0KWFSAo]

WingLion
01.03.2012, 18:51
-- скип про ограниченность ПЛИС --

Какая?

Объем, скорость, количество внешних выводов...

Totem
02.03.2012, 16:33
EP3C16240

---------- Post added at 16:33 ---------- Previous post was at 16:29 ----------

EP3C16Q240

Protom
02.03.2012, 18:18
http://www.cyber-labo.co.jp/panf_en.html
Один минус: платный

ZEK
02.03.2012, 18:30
Один минус: платный
Чем NextZ80 c opencore не устраивает? тож однотактовый, правда с добавкой на каждый такт за байт опкода

WingLion
02.03.2012, 18:49
http://www.cyber-labo.co.jp/panf_en.html
Один минус: платный

Не впечатляет... 20-100 MIPS на 25000LCELL - это жутко мало скорости при жутко большом объеме...

Мой проц 160MIPS-ов делает при объеме в 10 раз меньше...

ZEK
02.03.2012, 19:01
Мой проц 160MIPS-ов делает при объеме в 10 раз меньше...
помоему уже договорились что Ваш проц на 160мгц практически бесполезен тратит 70% ключевого ресурса на сложение двух чисел родной разрядности, и не 160мипс, а 160/4 = 40 что могут давать даже корки Z80, и очень редкие задачи можно на 100% распаралелить (а у Вас, еще фик знает скока времени уйдет на общение между процами в столь плотно-паралельной задачке, не удивлюсь даже цифре в 90%)

WingLion
02.03.2012, 19:11
помоему уже договорились

То, о чем вы договорились в бреду с самим собой - ни моего проца, ни меня не касается... Вы ведь даже не понимаете, что это за процессор. Вообще о нем НИЧЕГО НЕ ЗНАЕТЕ и НАГЛО ВРЕТЕ!

ZEK
02.03.2012, 19:14
Вы ведь даже не понимаете, что это за процессор.
Не более чем Вы. Запустите дристон как нить и опечальтесь с чистым сердцем низким КПД проца

svofski
02.03.2012, 19:37
Не впечатляет... 20-100 MIPS на 25000LCELL - это жутко мало скорости при жутко большом объеме...
Там написано 25000 gates. Никому не известно, о каких гейтах они говорят, но цифра в LE скорее всего на порядок меньше.

Totem
02.03.2012, 20:08
помоему уже договорились что Ваш проц на 160мгц практически бесполезен тратит 70% ключевого ресурса на сложение двух чисел родной разрядности, и не 160мипс, а 160/4 = 40 что могут давать даже корки Z80, и очень редкие задачи можно на 100% распаралелить (а у Вас, еще фик знает скока времени уйдет на общение между процами в столь плотно-паралельной задачке, не удивлюсь даже цифре в 90%)

Сам, извини, что тыкаю, не хочешь занятся, коркой еZ80?
И работаешь по специальности и верилог для тебя не новость.
Железку предоставлю , в лице 2 циклона для экспериментов, ну и готов подпитывать, интерес финансово, немного, что б не за просто так или не интересно совсем?

ZEK
02.03.2012, 20:11
Сам, извини, что тыкаю, не хочешь занятся, коркой еZ80?боюсь терпения не хватит.


И работаешь по специальности
я работаю бухгалтером :)

Totem
02.03.2012, 20:49
да потихоньку, о как :) молодец 2 раза:) возьмись, все интереснее чем, стандартный ZX ковырять, зилог разоришь окончательно:)

---------- Post added at 20:49 ---------- Previous post was at 20:48 ----------

процесс он всегда интересней:)

DevL
05.03.2012, 02:27
Всё как обычно. Начали про Z80 на VHDL, закончили экранами Профи и АТМ.

с ПЛИС - свой CPU это как на C/C++ и других языках - желание написать printf("Hello world!");

WingLion
05.03.2012, 04:22
с ПЛИС - свой CPU это как на C/C++ и других языках - желание написать printf("Hello world!");

Не смешно. По вашему, выходит, что достаточно написать строчку


my CPU

и процессор заработает...

bigral
05.03.2012, 08:28
Там написано 25000 gates. Никому не известно, о каких гейтах они говорят, но цифра в LE скорее всего на порядок меньше.

Всю жизь думал что gate это один элемент 2И-НЕ, типа как 1 из 4-x элементов 7400/ла3. Даже когда-то тут вопрос задавал сикоко гейтов в одной LE, мне тогда сказали зависит от схемы но в диапазоне от 4 до 15(?)

Сама тема запуталась. Интересуют вопросы:

1. многие хотят чтобы снаружи проц выглядел как z80 на 100% (это даст возможность использовать его в наших старых компах или на карточках под NEMOBUS, даже в АОН на z80 или MSX), но это требует использование 16bit адресов + страницы, сможет ли проц иметь команды оперирующие >16bit адресами?

svofski
05.03.2012, 15:32
Всю жизь думал что gate это один элемент 2И-НЕ, типа как 1 из 4-x элементов 7400/ла3. Даже когда-то тут вопрос задавал сикоко гейтов в одной LE, мне тогда сказали зависит от схемы но в диапазоне от 4 до 15(?)

В диапазоне от 4 до 15 -- это и есть на порядок меньше =)

Тоже искал ответ на этот вопрос. Пришел к выводу, что бывает используют некие абстрактные условные ASIC gates, которые дают поверхностную оценку. С альтеровскими LE и хилинховыми слайсами они не имеют однозначного соответствия, но порядок можно себе представить.

vlad
05.03.2012, 16:15
1. многие хотят чтобы снаружи проц выглядел как z80 на 100% (это даст возможность использовать его в наших старых компах или на карточках под NEMOBUS, даже в АОН на z80 или MSX), но это требует использование 16bit адресов + страницы, сможет ли проц иметь команды оперирующие >16bit адресами?
В принципе, создание универсальной замены классического проца "платки с FPGA" возможно. Платка будет вставляться в разъем вместо процессора и иметь возможность модификации, т.е. будет возможность допиливать и менять то, что в FPGA. Но напрашивается вопрос - для чего? Ведь тут создадим гору таких проблем как сопряжение сигналов, ограниченное быстродействие со старой DRAM... Да и стоимость такого девайса почти сравнится с уже существующими SOC решениями.
Сделать не вопрос, что с ним потом делать? Кто готов потратить свое время на новое ПО?

с ПЛИС - свой CPU это как на C/C++ и других языках - желание написать printf("Hello world!");

DevL
05.03.2012, 22:21
Не смешно. По вашему, выходит, что достаточно написать строчку


my CPU

и процессор заработает...

и я говорю, не смешно, но уж очень типично...

процесор это конечно больше - это моя работа и это известно...

bigral
05.03.2012, 23:10
Сделать не вопрос, что с ним потом делать? Кто готов потратить свое время на новое ПО?

Суть нового процессора в том что он сможет адресовать свыше 64kb памяти и СХОДУ переведет комп на который будет установлен из разряда микроконтроллеров в разряд workstation где вполне себе можно представить скомпилированной программу длинной в мегабайты (в эту категорию легко входит половина всех open source исходников). Ну естественно проги требующие больше памяти, расчитанны уже на десятки мегабайт RAM, и на частоты шины\проца >50Mhz на них претендовать можно только при условии совершенно НОВОЙ архитектуры. Но откуда возмется эта архитектура? Так вот она то и возмется в нутри этого UPGRADE-a для retro компов на Z80, который должен её обкатать (создать кучу софта), перед тем как кто-то то захочет больше скорости и больше памяти.

По аналогии: - если бы Clive Sinclair вместо Z80 влепил бы в ZX-spectrum 68008(который правда токо вышел и не был широко доступен, но зато имел потенциал расширения огого!) то вероятно цена бы выросла на $100 и сравнялась бы с конкурентами но через год бы уже не вышел никакой machintosh и наверно умер бы x86 :)

vlad
06.03.2012, 00:10
Суть нового процессора в том что он сможет адресовать свыше 64kb памяти и СХОДУ переведет комп на который будет установлен из разряда микроконтроллеров в разряд workstation где вполне себе можно представить скомпилированной программу длинной в мегабайты (в эту категорию легко входит половина всех open source исходников). Ну естественно проги требующие больше памяти, расчитанны уже на десятки мегабайт RAM, и на частоты шины\проца >50Mhz на них претендовать можно только при условии совершенно НОВОЙ архитектуры. Но откуда возмется эта архитектура? Так вот она то и возмется в нутри этого UPGRADE-a для retro компов на Z80, который должен её обкатать (создать кучу софта), перед тем как кто-то то захочет больше скорости и больше памяти.
Суть уже давно понятна, для этого уже и железо сделано было. Только для кого рассчитана будет эта архитектура? Чем тогда не вариант EZ80P? Для нового проца нужно ли свое железо? Если не так, то почему к примеру не продают просто новые двигатели для машин, поставил в старый корпус и вот тебе новые возможности, больше скорость..., и обкатывай себе, дорабатывай... детали доступны :)
Повторюсь, создать процессор это не на заборе написать его название, для этого нужны заинтересованные и знающее свое дело разработчики.
Если так нужен новый проц, то создаем группу понимающих что делать и знающих как сделать, обсуждаем рамки реального проекта и делаем, а так, смысл всего этого просто превратится в черепки...

WingLion
06.03.2012, 04:24
Если так нужен новый проц, то создаем группу понимающих что делать и знающих как сделать, обсуждаем рамки реального проекта и делаем, а так, смысл всего этого просто превратится в черепки...

Есть только одно но. Желающих что-либо делать - круглый ноль - вся тема зафлужена, куча никчемных советов - а реально откликнувшихся на первый пост - НОЛЬ.
Так что, смысл в нем вообще пропадает. И у меня желание пропадает им заниматься.

Займусь своим процом, вставлю его в свою железку, и буду делать свою работу.
А сюда и ходить незачем. Все равно, нового ничего не узнаю.

Vadim
06.03.2012, 06:11
1001-й раз пишу. Мне нужен новый проц. С новыми командами. С 32 бит режимом. С возможностью переводить проц в режим z-80 (16 бит адрес). Нужна новая машина под этот проц, а не панелька с 40-а выводами вставляемая в любой спектрум. Новый клон нужен, на подобии спринтера. Расширенная система команд уже известна. Это Z-380, она была продумана и вполне логична. Можно конечно её и расширить. Желателен мат.сопроцессор. Я разработкой заниматься не могу, т.к. не владею ни VDHL ни Verilog.


Ну естественно проги требующие больше памяти, расчитанны уже на десятки мегабайт RAM,
Как же быть с фрагментацией ОЗУ? Как грузить эти проги и как они будут взаимодействовать с ОС?


частоты шины\проца >50Mhz на них претендовать можно только при условии совершенно НОВОЙ архитектуры. Но откуда возмется эта архитектура?
Её надо разработать. Только надо быть осторожными, что бы не сделать велосипед (PC), но на системе команд z80.

Топикстартер задумал ввести в ядро T80 команды управления акселем и ищет того, кто поможет ему в разработке. Никаких идей он и слышать не желает. Модель он уже разработал. Ну пусть делает, его идеи мне неинтересны.

WingLion
06.03.2012, 07:04
Топикстартер задумал ввести в ядро T80 команды управления акселем

Только не не надо приписывать мне то, чего я не делал. Глюко-Т80 идет в сад.

п.с. и помощи я уже ни от кого не жду. Ибо, очевидно (из этой темы), что ее и не будет.

ZEK
06.03.2012, 08:58
расчитанны уже на десятки мегабайт RAM, и на частоты шины\проца >50Mhz на них претендовать можно только при условии совершенно НОВОЙ архитектуры.
в low cost fpga на такие частоты в сколько нибудь сложном ядре можно не надеяться, тот же ez80 если сделать из к примеру из однотактового NextZ80 (при его 25-30мгц), максимум что можно ожидать 10-15мгц, так что архитектуру выдумать что бы она была простая (risc) и хорошо конвееризуремая и мало занимала ресурса, это задача для исследовательских центров, а потом, проц без компилятора это бесполезная поделка...

Можно было бы каралич WingLion причесать (я бы ему компилер оберона нарисовал бы), но афтар неадекватен, не желает править детские косяки, и воспринимает критику как личную обиду.

bigral
07.03.2012, 01:29
Как же быть с фрагментацией ОЗУ? Как грузить эти проги и как они будут взаимодействовать с ОС?

На самом деле malloc в виртуальном пространстве каждой задачи тоже плодит фрагментацию RAM-a, правда значительно меньше изза того что один процесс значительно меньше раз обращается к malloc/free чем куча процессов под ucLinux\MacOS\AmigaOS. Только спец виртуальная машина решает этот вопрос радикально (которая знает где указатели).

Про RISC cpu - возможно новый проц нужно делать таким изза того что скорость будет большой, НО режим совместимости с оригинальным Z80 нужен по любому иначе проц будет мало кому тут интересен.

---------- Post added at 23:29 ---------- Previous post was at 23:05 ----------


помощи я уже ни от кого не жду. Ибо, очевидно (из этой темы), что ее и не будет.

Ну а хотябы проект завести для начала можно? На google code или source forge? Выложить исходники того что есть, может пару доков по соглашениям, FAQ и т.д. Ато как бы процес пока не инициирован совсем.

WingLion
13.03.2012, 18:37
Всем неверующим закрыть глаза и нажать на RESET...

Процессор 6E16 сегодня зафурычил на частоте 200MHz...
и разводится на 250MHz на более быстром циклоне.
А на стратиксе - выдает все 500MHz.

6Е16 - это шестиголовый (шестиядерный) процессор EQUINOX (http://winglion.ru/equinox/), переработанный на более высоком уровне...

Kоманду ADC в новой версии принципиально не добавлял, чтобы крЫтики еще больше опоносились...

ZEK
13.03.2012, 18:46
Kоманду ADC в новой версии принципиально не добавлял
на зло бабушке отморожу себе уши :)

adc это самый безобидный косяк был, я интерес к вашему процу потерял, критиковать не буду, наращивайте богомипсы, это полезно для чсв.

vlad
16.05.2012, 14:26
Идея в следующем...

Есть у меня заготовка для проектирования процессоров.
Чтобы сделать из нее Z80 не хватает самой малости.
Надо ее наполнять контентом, а именно, писать HDL коды для всех-всех-всех команд. У меня терпения не хватило после первых 40 штук...

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

Тем, кому интересно, прошу на e-mail [email protected] (в теме письма писать - Z80, чтобы в спаме не затерялось сообщение).

Плюсы для участников
1. Получение конечного результата (если он будет) - VHDL кода для Z80 и его возможных расширений.
2. Формально, бесплатный тренинг по VHDL и Quartus II на примере конкретного проекта.

Транслировал на VHDL софт-ядро NextZ80 (http://opencores.org) (verilog) v1.0.0. Теперь ядро собирается и в Quartus :v2_dizzy_roll:, занимает около 1700 LE на Cyclone III, есть тестовый проект для ReVerSE.
Может кто нить знает как работает конвейер команд в eZ80? Может получиться добавить, возможно удастся ещё увеличить его производительность. Сейчас ядро в 3-ри с лишним раза быстрее Z80 (T80 режим compatibility) на той же частоте.

b2m
16.05.2012, 14:54
Теперь ядро собирается и в Quartus
А с верилогом-то какие проблемы были?


Может кто нить знает как работает конвейер команд в eZ80? Может получиться добавить, возможно удастся ещё увеличить его производительность.
Никакой конвейер не поможет, если за один такт считывать ровно один байт. Нужно увеличить разрядность шины данных, а потом думать, как за один такт обрабатывать сразу несколько байт (как несколько команд подряд, так и параметры команды). Очень помог бы кэш и SDRAM-контроллер, работающий на более высокой частоте (чтобы считывать несколько байт за один такт процессора). Кстати, есть ли готовые кэш+sdram контроллеры?

vlad
16.05.2012, 15:41
А с верилогом-то какие проблемы были?
Как видишь никаких, просто весь проект у меня на VHDL и у Xilinx есть конструкции примитивов не перевариваемые Quartus'ом, типа RAM16X1D (16-Deep by 1-Wide Static Dual Port Synchronous RAM):

RAM16X1D #(.INIT(16'h0000)) RAM16X1D_bit1 (.DPO(rdor[1]), .SPO(rdow[1]), .A0(SELW[0]), .A1(SELW[1]), .A2(SELW[2]), .A3(SELW[3]), .D(DIN[1]), .DPRA0(SELR[0]), .DPRA1(SELR[1]), .DPRA2(SELR[2]), .DPRA3(SELR[3]), .WCLK(CLK), .WE(WE[0] & !WREQ));

Никакой конвейер не поможет, если за один такт считывать ровно один байт. Нужно увеличить разрядность шины данных, а потом думать, как за один такт обрабатывать сразу несколько байт (как несколько команд подряд, так и параметры команды). Очень помог бы кэш и SDRAM-контроллер, работающий на более высокой частоте (чтобы считывать несколько байт за один такт процессора).
Согласен, но это уже намного сложнее... Можно конечно использовать для этого M9K установив требуемую разрядность, некий кеш :) В основном, я пока рассчитываю на 8-ми разрядную архитектуру ReVerSE, как никак это больше знакомо, проще и намного понятнее для начинающих.

Кстати, есть ли готовые кэш+sdram контроллеры?
Готового нет, сейчас думаю стоит ли идти в этом направлении...

ZEK
16.05.2012, 16:18
Quartus'ом, типа RAM16X1D
На том же opencores есть нормально написанные

Кстати, есть ли готовые кэш+sdram контроллеры?
На opencores есть

b2m
16.05.2012, 17:17
На opencores есть
Например? Я видел там DDR2 SDRAM контроллер и подобное, но реализации с кэшем не нашёл.

vlad
18.05.2012, 20:02
Например? Я видел там DDR2 SDRAM контроллер и подобное, но реализации с кэшем не нашёл.
Можно глянуть как реализован к примеру в plasma-cpu (http://code.google.com/p/plasma-cpu/)...

specorg
11.12.2012, 19:33
Может кто нить знает как работает конвейер команд в eZ80? Может получиться добавить, возможно удастся ещё увеличить его производительность.

Нашёл только такое упоминание (картинки прикрепил к посту)

http://www.zilog.com/docs/um0077.pdf


Pipeline Description

The CPU pipeline reduces the overall cycle time for each instruction. In principle, each instruction must be fetched, decoded, and executed. This process normally spans at least three cycles. The CPU pipeline, however, can reduce the overall time ofsome instructions to as little as one cycle by allowing the nextinstruction to be prefetched and decoded while it executes the current instruction as displayed in Figure 2. The CPU operates on multiple instructions simultaneouslyto improve operating efficiency.

In Figure 3, the pipelining process is demonstrated using a series of nstructions. The first LD instruction prefetches its opcode and first operand during the decode and execute phases of the preceding INC instruction. However, the second LD instruction in the sequence only prefetches its opcode. The bus WRITE during the execute phase of the first LD instruction prevents the pipeline from prefetching the first operand of the next instruc-tion. Thus, the number of bytes prefetched is a function of the command currently execut-ing in the CPU.
When a control transfer takes place, the Program Counter (PC) does not progress sequen-tially. Therefore, the pipeline must be flushed.All prefetched values are ignored. Control transfer can occur because of an interrupt or during execution of a Jump (JP), CALL, Return (RET), Restart (RST), or similar instruction. After the control transfer instruction is executed, the pipeline must start over to fetch the next operand.

Хотел бы ещё добавить к обсуждению части участников в теме - всё это только теория, не судите строго.

Кто-то в этой теме предлагал вариант, процессора на базе команд Z380 с шиной 16/32 бит. Хороший вариант, все возможности процессора Z380 имитировать не нужно на 100%. Сложность заключается в том что нужно переделать T80 или NextZ80:
- шина данных к памяти 16/32 бит SD-RAM;
- шина адреса к памяти 32 бит (или меньше в целях экономии выводов, если не планируется ставить все 4Гб);
- система команд, регистров, прерываний? Z380;

Ещё момент, Z380 поддерживает проц Z180, нужна ли поддержка команд Z180 в 32 битном режиме? Может "отсеять" ненужные вещи?

Насчёт модели памяти и совместимости с Z80 машинами, такие мысли - поскольку Z80 использовался нами в компьютерах типа Spectrum 48K/128K и т.п. и это является можно сказать эталоном, то почему бы не создать так называемый виртуальный VZ80?

Как это выглядит - выделяем каждому процессу память страницами по 16Кб/64Кб/1Мб. Как раз хватит для режима совместимости Z80 для запуска виртуальных машин 48Кб/128Кб а доступ к памяти до 1Мб по стандарту Pentagon или другой (например).

Можно пойти дальше, сделать параллельную работу этих VZ80 с контекстным переключением, которым будет заниматься менеджер процессов (программа).
Единственное что-то надо делать для разделения ресурсов: экран, порты устройств.
Дальше можно развить идею вывода экрана VZ80 в область окна ОС которая будет управлять системой в режиме VGA например в виде окна. Порты можно сделать у каждого процесса свои или общие и управлять ими при контекстном переключении.

Что касается использования возможностей z380 для работы, то для создания или портирования ОС необходимы механизмы эффективного управления памятью и процессами. Так же важна защита памяти от изменения другими процессами (ошибки, сбои и т.п.).

Можно как вариант взять за основу управления памятью в виде страниц 16Кб/64Кб/1Мб через специальные регистры страниц, в котором в виде битовой карты будет прописаны права доступа процесса к страницам
- 0 нет доступа
- 1 есть доступ

Охват области памяти при размере страницы:

16Кб

1 байт - 8 бит - 128Кб
2 байта - 16 бит - 256Кб
4 байта - 32 бит - 512Кб
2х4 байта - 64 бит - 1Мб
4х4 байта - 128 бит - 2Мб
8х4 байта - 256 бит - 4Мб
16х4 байта - 512 бит - 8Мб
32х4 байта - 1024 бит - 16Мб
64х4 байта - 2048 бит - 32Мб
128х4 байта - 4096 бит - 64Мб

64Кб

1 байт - 8 бит - 512Кб
2 байта - 16 бит - 1Мб
4 байта - 32 бит - 2Мб
2х4 байта - 64 бит - 4Мб
4х4 байта - 128 бит - 8Мб
8х4 байта - 256 бит - 16Мб
16х4 байта - 512 бит - 32Мб
32х4 байта - 1024 бит - 64Мб
64х4 байта - 2048 бит - 128Мб
128х4 байта - 4096 бит - 256Мб

1Мб

1 байт - 8 бит - 8Мб
2 байта - 16 бит - 16Мб
4 байта - 32 бит - 32Мб
2х4 байта - 64 бит - 64Мб
4х4 байта - 128 бит - 128Мб
8х4 байта - 256 бит - 256Мб
16х4 байта - 512 бит - 512Мб
32х4 байта - 1024 бит - 1Гб
64х4 байта - 2048 бит - 2Гб
128х4 байта - 4096 бит - 4Гб

Получается что для полного описания доступа страниц 4Гб по 1Мб на страницу нужно 128 регистров по 32 бита каждый. Но в целях экономии можно ограничится меньшим размером - например, при 8 регистрах по 32бита и размере страницы - охват области памяти:

16Кб - 4Мб
64Кб - 16Мб
1Мбайт - 256Мб

Как видно лучше конечно чтобы страница была равна 1Мб, т.к. позволяет больше памяти охватить, но может конечно в идеале лучше 64Кб, может процессу не нужен целый мегабайт, а только скажем 50Кб. Но для адресации скажем 64Мб в этом случае нужно будет 32 регистра по 32 бит. Возможно для оптимизации, в зависимости от размера памяти в целом нужно будет выбирать свой размер страницы.

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

Получается что страницы процесса могут быть где угодно в памяти и с разрывом. Единственный минус такого подхода, что страницы памяти должны идти последовательно, можно с разрывом, поскольку битовая карта используется для склейки адресного пространства. Помочь в этом случае может "умное" выделение страниц, не допускающее нарушение последовательности размещение страниц процесса в памяти.

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

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

Кстати насчёт GUI для ОС можно предложить взять за основу FreeGEM http://www.seasip.info/Gem/History/freegem2.html

PS: Для тех кто не понял ничего по поводу страниц, то я описал идею не модели памяти какой-то новой или модификацию имеющиеся , а назначение физическим страницами памяти логических страниц процесса. Память процесса линейна и является логической и состоит из тех страниц которые указаны в битовой карте (где бит установлен в "1" единицу). Все операции процесса выполняются в логических страницах. Склейка - это объединение физических страниц памяти которые принадлежат процессу (по битовой каарте), чтобы у процесса логическая память была непрерывна. Процессу вообще будет не заметно какие его логические страницы назначены на физические - у него будет просто линейная память, без каких либо перерывов и всего механизма этого он не увидит никогда. Обратиться к другим процессам он не может, за исключением, если не указать другому процессу, что такая же физическая страница (или несколько) тоже принадлежит ему - таким образом можно вызывать функции из DLL или ПЗУ например. Программная поддержка тут никакая не нужна - используется обычный асм Z80,Z380 компиляторы есть.

Vadim
11.12.2012, 19:49
И что мы получаем? Тот же пень, только на основе кода z80, а не 8086. Смысл? Только если в самом процессе разработки.

specorg
11.12.2012, 20:10
И что мы получаем? Тот же пень, только на основе кода z80, а не 8086. Смысл? Только если в самом процессе разработки.

Этим идеям до пней очень далеко, даже до i386 тоже. Рассматривается как бы апгрейд проца Z80 в "расширенный" 32 битный режим Z380. Но толку от 32 битного режима без управления памятью будет мало.

Если посмотреть историю развития процессоров в том числе Zilog, то многие пошли по пути аппаратного управления страницами, защитой и уровнями привилегий.

Не помню кто в теме писал, что при запуске одной программы мы получим CP/M.

Допустим напишем мы многозадачный CP/M, как распределять память между программами если все программы находятся в одной и той-же памяти? Можно конечно, но надёжность системы будет низкой - никакой гарантии что кривая программа или драйвер не завалит всю систему.

Судя по всему при развитии процессоров, часть функций ОС по управлению памятью и процессами переложили на CPU. В итоге получили грамотное управление процессами, памятью, повысили надёжность системы. Вот собственно и появилась идея дополнить Z80 процессор необходимым функционалом, чтобы эффективно использовать 32 битный Z380 режим.

smalcom
12.12.2012, 01:10
была аналогичная идея про виртуальные z80 с "окнами вывода" в ОС и супервизором на Z380. ИМХО идея живучая. Вот только про Z380 не читал досконально, а вот к примеру схема защиты i386 мне ненравица.

mastermind
12.12.2012, 01:24
ИМХО все эти идеи, насколько бы они ни были хороши, насчет продвинутых моделей памяти и т.п. без программной поддержки ничего не стоят.
Вот, например, для начала неплохо бы LLVM-backend (http://zx.pk.ru/showthread.php?t=20094) для уже существующего Z80 довести до юзабельного состояния, а затем уже есть смысл расширяя его и эмуляторы экспериментировать с усовершенствованиями, которые затем можно и в VHDL/железе воплотить при желании. (когда для них уже есть программная инфраструктура)

bigral
18.12.2012, 18:06
...LLVM-backend для уже существующего Z80 довести до юзабельного состояния...

По-моему даже если для z80 генерировать супер оптимизированный код то всеравно его возможности будут достигать максимум того софта который уже есть на CP/M или zx/msx платформах (там все в ручную на асме оптимизировалось !!! это превзойти не реально). Проблема z80 в ограниченном количестве одновременно доступных данных и ограниченной длинне программы (про частоту молчу). Если кто-то предложит хитрый способ ЭФЕКТИВНОГО преодоления адресного лимита в 64кб тот сделает революционный прорыв не токо для z80 а для всех платформ. Из всего что до сегодняшнего момента я слышал, больше всего меня впечатлила в этом плане связка: MMU в PDP-11 + modula2 компилер который генерит спец exe-шники с ограничением размера функций в длинну страницы (8кб). Но там всеравно неясно что делать с длиииинными данными, хотя в теории возможно на уровне системы сделать само-перематывающиеся в окне массивы данных. Так или иначе требуется какой-то механизм эфективной работы с виртуальными адресами (причем по желанию любой разрядности, так как каждой программе нужен разный обьем памяти для работы).

BYTEMAN
18.12.2012, 18:10
Кстати насчёт GUI для ОС можно предложить взять за основу FreeGEM http://www.seasip.info/Gem/History/freegem2.html
это же Atari ST :)))))

mastermind
18.12.2012, 18:33
bigral, никто не спорит насчет ограниченности возможностей Z80.
Но тема-то данная как раз об его усовершенствовании (с целью "преодоления адресного лимита" либо еще для чего). Рабочий LLVM-backend (для Z80) в этом плане очень был бы полезен в плане моделирования/обкатки таких модификаций (ну и, естественно, для создания по ходу дела инструментария для "усовершенствованных Z80", если до этого дойдет), т.к. "легким движением руки" (относительно) можно в такой бэкенд добавлять всякие несуществующие (в реальном Z80) инструкции и т.п. и смотреть что из этого получается, насколько те или иные усовершенствования на практике эффективны и т.п. (т.е. при применении существующих llvm-фронтендов - компиляторов и т.п., которые сами доработок под новые бэкенды практически не требуют, т.к. об архитектуре target-процессора они практически ничего не "знают")
Если не понятно о чем я, рекомендую почитать об архитектуре LLVM.

ZEK
18.12.2012, 19:05
тогда уже допилить Z80 под LLVM, что бы поменьше было разворачивание команд машины в команды проца, ну и регистров добалтать, либо сделать прямой доступ к альтернативным регистрам, уже проще будет развернуться

bigral
20.12.2012, 00:23
...Если не понятно о чем я, рекомендую почитать об архитектуре LLVM...

во во... и из этой самой архитектуры следует только то что она не рассматривает проблему ограниченности адресуемого пространства совсем, ну т.е. подразумевается что есть пространство адресов которого ХВАТАЕТ (т.е. подразумевается что оно бесконечное???) И что при таком подходе можно сделать с z80??? - правильно, сделать его 64bit адресным (и тогда он мало чем будет отличаться от любого другого проца у которого нет проблем с адресным лимитом, правда опять же на данном этапе развития электроники)

mastermind
20.12.2012, 09:20
Ну я вообще-то совсем другой аспект его архитектуры имел ввиду. (абстрагированность фронтэндов от архитектуры target-а). Впрочем адресация также в общем-то часть этого принципа.

из этой самой архитектуры следует только то что она не рассматривает проблему ограниченности адресуемого пространства совсем, ну т.е. подразумевается что есть пространство адресов которого ХВАТАЕТ (т.е. подразумевается что оно бесконечное???)
Я бы не сказал так. Скорее LLVM оставляет вопрос реализации адресного пространства полностью на усмотрение разработчика бэкенда. В частности хотя LLVM IR имеет тип "pointer" (указатель), но не допускает арифметики с указателями (иначе говоря, он ничего не знает и не зависит от линейности или иных свойств адресного пространства), вместо нее имеются инструкции вроде getelementptr (http://llvm.org/docs/LangRef.html#pointer-aliasing-rules) (которые позволяют обойтись без этой самой адресной/указательной арифметики). Плюс указатели могут ссылаться на разные адресные пространства.

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

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

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

Sameone
02.01.2013, 01:29
Битовая карта будет своего рода указателем из каких страниц складывается (путём склейки) адресное пространство процесса. Нужно будет в процессе обработки команд и операций с памятью учитывать эту карту.

Получается что страницы процесса могут быть где угодно в памяти и с разрывом. Единственный минус такого подхода, что страницы памяти должны идти последовательно, можно с разрывом, поскольку битовая карта используется для склейки адресного пространства. Помочь в этом случае может "умное" выделение страниц, не допускающее нарушение последовательности размещение страниц процесса в памяти.

Если страницы будут идти последовательно - то память программе надо будет выделять сразу по максимуму. Это не есть гут (представь себе, что ИЕ при запуске сразу резервирует место под полсотни вкладок с ютуба, хотя ты в 99% случаев открываешь только страницы поиска и почту. Чтобы сделать возможным динамическое перераспределение памяти, следует потратить больше ресурсов на поддержку карты распределения.
Именно: иметь список ИД процессов с указанием номера первой физической страницы памяти, а также иметь список страниц памяти, содержащий для каждой страницы один-единственный элемент - номер следующей страицы. Или 0, если это последняя выделенная страница памяти. При выделении кванта времени для очередного процесса ОС просто "суёт" процессору в специальный регистр ИД процесса. Просто и эффективно.

если не указать другому процессу, что такая же физическая страница (или несколько) тоже принадлежит ему - таким образом можно вызывать функции из DLL или ПЗУ например

ИМХО - так делать не надо, это прямая дорога к dll-hell. Динамическая библиотека - это разделяемый ресурс, для управления которым и предназначена ОС. Т. е. DLL должна лежать в принадлежащей ОСИ области памяти, а приложения должны выставлять запрос на выполнение библиотечных функций. Т. е. процессор должен, как минимум, поддерживать разделение памяти на 2 области (кольца, в терминологии ИБМ) - память ОС и память приложений.

Максагор
11.04.2013, 11:29
Короче, своя рубашка ближе к телу... поэтому будет свой процессор без попыток повторения Кота-В-Мешке...

Уважаемый Winglion, есть ли какие новости по этой задумке, или всё заглохло?

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

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

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

Vadim
26.04.2013, 13:37
Ребята, вы используете в вашем софте 14 МГц в ZX Evo? Нет? Тогда о чём разговор?
Я использую 12Мгц Профи в своём софте.

TSL
31.05.2013, 04:23
у Xilinx есть конструкции примитивов не перевариваемые Quartus'ом, типа RAM16X1D (16-Deep by 1-Wide Static Dual Port Synchronous RAM):

Сегодня собрал проект для некстЗ80, наступил на ту же макрофункцию, но за 2 минуты скачал с гуглов RAM16X1D.v, добавил в файлы квакуса - все скомпилилось искаропке. (Хотя может год назад этого файла в гуглах и не лежало, я хз...)
Вопрос в другом: поскольку аффтар писал хдл для Xilinx, можно ли перепилить сорц с учетом каких-нить оптимизаций для альтер? Сорцы курил, навскидку ничего такого не увидел.

ZEK
31.05.2013, 11:53
Хотя может год назад этого файла в гуглах и не лежало
лежало и так же гуглилось причем на опенкорс

Shaos
01.06.2013, 11:59
Уважаемый Winglion, есть ли какие новости по этой задумке, или всё заглохло?

Умер он :(

За 2 дня до твоего сообщения...

Максагор
01.06.2013, 12:26
Умер он :(

За 2 дня до твоего сообщения...

Нет слов. Просто нет слов...

Titus
01.06.2013, 13:06
Сообщение Максагора от 11.04.2013, в профиле у WingLiona "Последняя активность: 22.04.2013 20:27"
Так что пруф или не было...
Было. На сайте его написано. От инсульта или его последствий.