Что подразумевается под "в железе"?
Вид для печати
Вынуть вм80 и вставить аналог.
Как раз HardWareMan удачно заглянул, он менял в специалисте ВМ80 на проц Vslava. К вектору и ВМ1 это отношения не имеет, наверно лучше обсуждение этого вопроса продолжить в соответствующей теме.
Ссылкой поделитесь?
Если есть возможность (а она есть) ВМ1 достать ,то может при определённой задаче и желании есть смысл и с ним справиться ?
Как уже сказали выше - я так делал. И что?
Если бы я затевал проект века сейчас, то это был бы читабельный эквивалент проца Vslav-а. Привести его ближе к тому, как его написал бы человек. Постараться выделить модули. Дать им имена по возможности совпадающие с документацией. Раскидать по ним все семиэтажные выражения. Это очень непросто по-моему, но полезно. Смысл такого великого труда в том, что не только сверхлюди смогут вносить в него дополнения и изменения.
T80 с моими фиксами для режима 8080 -- это если надо get shit done прямо сейчас, потому что проверено, что работает. Но по-моему он слегка уродец, лично мне радости не приносит. Может быть это просто потому что я вижу VHDL как дореформенный Вѣрилогъ с твердыми знаками и ятями (хотя говорят, что все наоборот, это VHDL молодой и пышущий здоровьем).
Очеловечивание проца Vslava - это было бы очень хорошо, только нужен квалифицированный специалист с желанием и временем. И это отдельная задача. До ее решения приделать туда ВМ1 нереально. Приделывать к T80 ВМ1 можно прямо сейчас. Требования к квалификации ниже, но без желания и времени опять никуда, в это все упирается. Если судить по себе, то проекты, которые в принципе можно сделать, но не очень хочется, могут висеть годами, пока не появится человек, которому хочется очень. Или появится какая-либо дополнительная мотивация.
Я вижу очеловечивание как отдельную и самостоятельную задачу. Может быть кажется, что если мы получаем на выходе полный эквивалент оригинала, то и работы как бы нет. Но это не так. Это как погашение долговых обязательств -- развязывает руки.
https://i.ibb.co/YdwZnxk/VM80.png
Процитирую свое же сообщение:
Цитата:
Процессор - чистая стэйт-машина, никакого микрокода. Теперь точно ясно, что повторять его влоб смысла вообще нет, нужно делать изложение на тему. Речь конечно о реализации на FPGA/CPLD. Интересного там только сам ALU - он просто изящен, хоть и не настолько продвинут в математическом смысле, как у Z80. Ну еще и стэйт машина циклов, но ее можно и самому накорябать за полминуты. Забавно еще то, что только регистры реально хранят значения во времени и аккумулятор, хотя он часть ALU (его выбор - отдельная цепь). У ALU несколько внутренних регистров: X, R и A, причем X и R практически каждый такт перезаписываются. A, выполняет роль, собственно, аккумулятора. При расчете, данные из A сначала копируются в R. Второй операнд параллельно грузится в X и результат вычисляется комбинаторной логикой напрямую (затраты времени чисто задержка в логике), который может быть записан обратно в А, минуя внутреннюю шину, или сразу выставлен на внутреннюю шину данных. Она, кстати, двунаправленная, точнее там что-то вроде монтажного ИЛИ + накачка перед использованием, т.е. используется ёмкостный эффект - это уже обсуждали. Это позволяет загрузить опкод NOP (накачка внутренней шины отключается при активном сбросе), удерживая сброс в течение нескольких тактов (в доке написано, что их число минимально 3), что уменьшает накладные расходы в схеме. Таким образом, вот эта схема не верна, так как Accumulator Latch имеет доступ к внутренней шине.
А, еще регистр флагов. Он отсутствует как регистр - так, набор триггеров. 4 из них вообще тупые: P, Z, AC и S. А вот C - развитой. У него сложная цепь управления, т.к. он реально участвует в куче команд.
Чистая стейт-машина, никакого микрокода -- это фактически хардовый микрокод, забитый на стадии проектирования.
HardWareMan, я сейчас немного далеко от темы. Но лично для себя вывод такой, что в настоящий момент наиболее квалифицированный специалист для этой задачи -- HardWareMan :D
Отличный вопрос! И что дальше? Чем всё закончилось? Можно же теперь "допиливать" проект под себя ,вводить новые регистры ,команды ,например перемещение блоками ,рисование и 2D функции ,увеличивать частоту и.т.д ,разве изначально задача не в этом состояла? Взять лучшее и необходимое от 8080 ,8085 ,z80,вм1.
Не особо силён в этих реверсах ,но создать новый модернизированный проц под конкретные задачи и железо было бы интересно всем.Возможно не представляю объём трудозатрат.
Как минимум в процах не хватает основного - регистров ,желательно 16битных и частоты ,думаю это желание любого программиста любой системы. Насколько это сложнореализуемо?
Взвесил тут за и против ВМ1 ,с одной стороны хочется ,но ,даже если получится , то размножить то его не смогу...А в одно лицо писать софт под него ,зная что никто пользоваться не будет смысла не вижу. Нужна массовость и повторяемость. Кому надо ,ссылкой на ВМ1 поделюсь.
Извините за оффтоп.
В качестве примера того, насколько люди разные. На форуме можно поискать, как человек оттолкнулся от 8080 и стал придумывать систему команд у которой по машинному коду (без дизассемблера) было бы понятно (по крайней мере ему самому), что это за команда. Вот такая неожиданное направление технического творчества.
Что касается 580ВМ1, то выбор его в качестве суперВМ80 кажется не очень оправданным. Мой небольшой опыт оптимизации для ВМ1 показал, что да, можно посидеть, подумать и выиграть сколько-то процентов. Но когда просто запуск исходной (до оптимизации для ВМ1) программы на ВМ85 или z80 дает сравнимый выигрыш, поневоле задумаешься (и я перестал оптимизировать для ВМ1). Другое дело, если бы эти процы были дешевы и доступны, но они сочетают редкость, дороговизну и малое количество плюшек.
Нет. Задача стояла получить работоспособную модель, описанную языком xHDL, которая будучи залита в ПЛИС будет вести себя полностью как оригинал. Как внешне, так и внутренне. А смысл этого в том, что когда настоящие ВМ80 закончатся (а их не выпускают уже лет 30 наверное, да?), а они точно закончатся, можно было бы ремонтировать компьютер на нём. Именно для этого и Z80 начали реверсить, но я не следил за результатом.
Не открывается ссылка http://hwm.us.to/vm80/
Глянул на ПЛИС-овские модели ВМ80... вроде ни чего особо страшного. Спасибо авторам, разложено по полочкам.
При желании вполне реально разобраться, и допилить плюшек.
Для меня проблему составит реализация в железе платы, которую можно воткнуть вместо процессора в реальный Вектор.
А без реализации в железе, для меня, теряется смысл затеи с добавлением плюшек в ВМ80. :(
Интерес к эмуляции ВМ80 с плюшками на ПЛИС, подкинутая разрабами ВМ1, состоит в том, что добавляя вкусняшки к ядру ВМ80, можно получить то, чего так ему не хватало. При этом сохраняя совместимость с родным и любимым с детства софтом, но получая "крутую игрушку" ...
Огромная экранная область Вектора, при отсутствии операций индексного копирования, это грустно было изначально.
Что нужно для ускорения работы с изображением?
1. Конечно индексное копирование как в Z80. И желательно однобайтовая операция, выполняемая за 12 тактов на перенос одного байта. Прикольно было-бы в идеале вообще тормозить счетчик РС до обнуления счетчика количества повторов. Т.е. не нужен будет "jnz adr" для возврата к циклу. ;)
2. А вот тут самая бредовая идея...
Что ещё нужно при формирования изображения?
Вычисления! ;)
Правильно, при реализации в железе ВМ80 на ПЛИС, ни кто не остановит добавить функций мат.сопроцессора :) не только add и sub, но и ...
Вот это была-бы вкусняшка... совместимая со всем, что уже есть, но умеющая не только "ползать", но ещё и "летать" ...
;)
Стоит ответить (хотя бы себе) на несколько вопросов:
1. Какие конкретно задачи планируется решить в итоге?
2. Какие средства доступны для решения?
3. Какие ограничения?
Так то я тоже за все хорошее против всего плохого, но есть нюансы. Даже пока оставим в стороне конкретику - как именно планируется преодолеть ограничения быстродействия и т.д.
1. Как и кем это будет поддержано программно? Мне сложно поверить в вариант "это будет так здорово, что все программисты (кстати, где они?) начнут это поддерживать в своих новых программах".
2. Как разрабатывать программы под новые возможности? Компиляторы, эмуляторы с отладчиками?
3. Как это будет реализовано в железе?
3.1. На девборде в плис? Это сравнительно просто (даже я делал пару модификаций v06cc svofski в сторону "супервектора"), но вряд ли много кто оценит.
3.2. На реале с заменой проца и возможно еще какими-то дополнениями? Полезная, но более сложная вещь и пп. 1 и 2 все равно остаются.
Думаю, не стоит забегать так далеко. Сейчас хотя бы просто получить в ПЛИС замену ВМ1, реализовать в железе, а плюшки потом можно будет добавлять. И гибрид Z80+ВМ1 сделать, и всё что угодно, но сейчас не стоит копать так глубоко, иначе процесс встанет на этапе обсуждений и мечтаний. Пусть для начала это будет даже банальный аналог ВМ80 в ПЛИС, с возможностью перепрошивки...
Могу нарисовать платку, которая будет впаиваться вместо ВМ80 -- это не проблема, была бы определённость с ПЛИС.
Вот с определённостью с ПЛИС и проблема.
Я в них практически не разбираюсь. Посмотрел сравнительные графики...
Если смотреть на Циклоны, то это интерфейс 3.3В, нужно будет ещё 5 микросхем преобразователей уровней на плату устанавливать. А хотелось-бы воткнуть в панель процессора, и что-бы не болталось и не мешалось.
Последнее, что я увидел с поддержкой интерфейса 5В, это МАХ2, судя по табличкам ЕРМ1270 и ЕРМ2210.
Но опять корпуса в 144 ноги не поместятся между рядами ног платы, которую можно воткнуть в панель для ВМ80. Единственный выход который приходит в голову, это двухэтажная конструкция. На нижнем слое вниз - ноги для панели типа ВМ80, вверх разъём для платы с ПЛИСом. Но закроется ли корпус Вектора...
Можно конечно на одной плате, ПЛИС сбоку от разъёма поставить, в обоих Векторах есть место...
В общем случае, выбор ПЛИС это та ещё задачка, особенно для того, кто в теме "ни бельмеса"...
А начинать естественно с копии ВМ80. Но с оглядкой на количество ячеек ПЛИС, шоб без вкусняшек не остаться...
В основе своей идея правильная ,ПЛИС очень пластичный материал , и основную арифметику хотя бы 16бит организовать можно , так же и быструю пересылку массивов и 2D функционал .Главное правильно поставить посильную задачу ,и в одиночку не выйдет ,распределить имеющиеся на сайте ресурсы программистов и системотехников. Интерес возможно проявят большинство сидящих на ВМ80 , 8080. А стартовать ,да, с дубля ВМ80 , и по результатам добавлять команды.
Ну вот... я ведь писал, что я "не копенгаген" в ПЛИСах :(
Сейчас нужно гуглить, что такое "PCI-compliant", и чем грозит "только в одном ... IO банке".
Позволяет-ли эта характеристика рассматривать данный чип как кандидатуру для данного проекта, или без дополнительной обвязки (конверторами напряжения) не обойтись, и нужно смотреть на другие чипы...
У меня просьба начать отдельную тему с обсуждением планируемого плисового проца, все же к ВМ1 это пока не имеет отношения.
Пример подобной конструкции.
Можно поставить 2 FPGA, одну нежирную MAX, толерантную к 5В, и другую - пожирнее, но с меньшим количеством выводов. Интерфейс между ними не принципиален, хоть SPI, но на высокой частоте. Ещё круче, если MAX сможет загружать произвольную прошивку во вторую FPGA (а-ля sprinter).
Можно лукавить.
И продолжать разговор в этой теме, обсуждая эмуляцию на ПЛИС именно ВМ1, оставляя в уме возможность его дальнейшего "роста". Это ведь не принципиально. ;)
Или тут была тема юза реального ВМ1, тогда обсуждение ПЛИС-варианта действительно нужно выносить в отдельную тему.
Да, вот по ссылке фотки, конструктив, само-то, что было-бы интересно.