Pull to refresh

Comments 95

Скорее это сделано в рамках импортозамещения!
Ну нет, такое старье уже не импортозамещают. Хотя старья в программах импортозамещения хватает, это факт.
Ну по современным тех процессам можно и частоту поднять и подобных «ядер» сотню накидать. Чем не замещение? )
А зачем нужно сто таких ядер? Это же не увеличит производительность в сто раз. Сделать-то можно что угодно, вопрос в том, зачем.
Использованик старого кода, который работает десятилетиями уже. Чтобы заново не переписывать.
не, 8080 — ну его нафиг
архитектура ЖУТКО неудобная
особенно для компиляторов
мало регистров
хреново с индексной адресацией…
Некоторые личности с эпохальной ветки на IXBT, которая как раз в тему этой статьи, и x86 называют жутко неудобной архитектурой :)
В наше время нет проблем сделать 8080++ с расширенной архитектурой, регистрами, песнями и плясками, способный выполнять старый код в режиме совместимости, по аналогии с тем же х86. Только кому это нужно? :)
Минутка бесполезной информации: есть Zilog Z8+, чем-то напоминающий Z80 (который чем-то напоминает 8080), с сотнями регистров.
А в 64kb есть gcc? forth, и то не всякий :)
в 64к есть КУЧА фортов
вон аказалось под APPLE 2 и Атари есть игрушки на форте
угу, на CP/M были еще Pascal-MT & PL-MT, поговаривали про лисп и декус-си, думаю, что ограничения были только в перефирии
А что, где-то были системы, в которых таких машинок стояли сотни, и которые до сих пр востребованы? Мне кажется, что намного проще и дешевле переписать тот старый код, чем городить огород с созданием из «сотни ядер» системы на кристалле. А еще эти ядра надо будет чем-то связывать между собой…
Буквально сейчас сносим на одном стратегическом объекте систему телемеханики. Сделана она в 90ых годах на промышленных компьютерах на z80. До сих пор работает без сбоев, но надо осваивать средства, поэтому ее в металлолом, а новое оборудование на стену :)
Помимо ядер нужен будет еще и арбитр шины, чтобы ядра могли сосуществовать друг с другом и не ломится одновременно к одной шине.
В такой архитектуре как ВМ80 ядра не смогут эффективно работать параллельно на одну шину — большую часть времени они будут ожидать когда второе ядро освободит шину. Смысл увеличивать ядерность есть только когда соотношение времени выборки инструкций/данных и время обработки этих данных превышает количество ядер. ВМ80 практически постоянно требует доступ к шине и соответственно ядра постоянно будут блокировать друг друга и вынужденно простаивать.
В современных процессорах эта проблема решена за счет кеширования на уровне ядра(L1 кеш) и конвеера команд. Преимущество получают только на обработке больших порций данных.
А если сильно всем миров попросить, Intel в опенсорс схемы не отдаст?
Что-то мне подсказывает что они утеряны уже, как и много схем других замечательных микросхем.
Шансов крайне мало… Тогда схем особо и не было в нынешнем представлении, i8080 рисовали еще руками — и получение исходных масок Intel-а сэкономило бы лишь 10-20% работы. Как разрабатывали 386 — вопрос, но он точно не синтезирован из HDL — т.е. все равно много работы останется…
Ну не факт, афаик, в интеле начинали синтезировать схемы на HDL'e еще в конце 70х.
Наверняка что-то автоматизировали, но это точно не был привычный нам ныне синтезируемый верилог… Нормальный синтез — это вроде 90-е и позднее… А ранее только верификация lvs, симулятор кусочков…
Я сейчас навскидку источник не вспомню, но помню, что HDL и прочие плюшки были применены в «настоящем будущем» Intel'а — iAPX432. Отделу создававшему 8086 ничего не досталось (это ж была просто «заглушка для сокета» пока iAPX432 подоспеет) и потому это был последний CPU, нарисованный руками.

Вот после того, как iAPX432 с треском провалился — там да, уже начали автоматизацию использовать. Начиная с 80286 — там да, с разработкой на листах бумаги было покончено.
Да, я про него.
И 432, и наследник — 960, BiiN использовали довольно продвинутые техники генерации.
Мне рассказывали, что между изменениями ISA и тестированием в силиконе проходили буквально часы.
Во-первых, кремний, а не силикон. Кремний — silicon, силикон — silicone. Не надо путать.
Во-вторых, технологический процесс изготовления даже самой простой микросхемы — это недели и месяцы, так что ни о каких «между изменениями ISA и тестированием в силиконе проходили буквально часы» даже речи быть не могло на самом деле.
Я имел в виду «in silico», да «в кремнии» более корректно. Речь не идёт о готовой микросхеме, это-то понятно. Я про другое несколько, не про генерацию масок, а про PLA-логику. Дабы не возникала путаница, процитирую пару фрагментов из писем:
Because we had a fairly general purpose instruction decoder programmed largely with PLA logic and some helper circuits, the instruction set could change easily. The initial ISA formatting and addressing modes were designed early, along with an initial set of required instructions. That was enough to generate a simulator, compiler and do initial programming for the chip – esp. including the OS. Once that was settled a bit, we (hardware engineers) had enough info to know:
— functional elements likely to be needed (like arbitrary bit-width extract/insert)
— where flexibility was needed (i.e. use µcode and PLAs)
Hardware development proceeded in parallel with OS, compiler and application programming. Useful new instructions for added OS capabilities, new OS data structures and the like:
--often appeared initially,
— quickly settled down to near nothing, and
— rarely changed the fundamental hardware design – it just required new PLA code.
Occasionally, we had to add some other structures in hardware – or signals between the chips – but it was rare enough to be “an interesting design problem” rather than “a disaster”. The set of instructions was well settled down about half-way through the design process, but the bit-encoding of them changed regularly – almost until the chip taped out (was committed to manufacturing masks).

the ISA could — and did — change several times a week depending on statistical analysis of code generated «to date», and
the compiler was updated in minutes to generate the new instruction set
The iAPX432 was a very good learning exercise for subsequent work with object-oriented languages
Very innovative structures were used on-chip: barrel shifters, bus-integrated ALU and address generation logic, folded PLAs, etc.
It was one of the 1st implementations of IEEE conformant 32-, 64- and 80-bit floating point
— we did LOTS of simulations of operations to minimize ULP (units-in-last-place) errors
It was the 1st chip at Intel that was fully register-transfer-level simulated, and mixed-level logic+RTL simulated
The IC layout design was fully connectivity extracted, and compared to the logic design for errors
— this procedure/process was hand validated by crawling around on a 30m x 30m chip plot tracing circuits
— we found the computer connectivity validation found many times more errors than the humans did


Часы упоминались в другом месте, не могу найти сейчас в архиве своём, может даже в беседе, а не через мыло.
PLA это уже вообще совсем другое дело, от изменения набора инструкций до создания новой зашивки тестовой ПЛИС (а PLA — это предтечи ПЛИС в их современном понимании) вполне могли пройти считанные часы.
А про IAX у вас есть что-нить? (один из вариантов 64битной арихтектуры Intel в конце 90х)
Я больше интересуюсь iAPX 432 и i960MX / XA (не те которые стоят во всяких scsi-контроллерах и HBA, а скорее в F22).
Но всё никак не могу найти хотя бы пару GDP, не то что процессорные платы или даже System 432/670.
Дело скорее не в технологии, а в применимости — эти процессоры скорее всего до сих пор применяются в военщине и космосе, по крайней мере в эксплуотации. И по этому врядли будут публиковать такую информацию вот так вот сразу.
Наверное, главный результат это то что вы научились реверсинженерить процессоры. Сколько процентов ручного труда в этом? Вот в схеме 4758 транзистров. Вы вручную переносили каждый на схему со снимка, или возможно это как то сделать в полуавтоматическом режиме?
Схему надо руками разбирать, оно даже при наличии очень качественных снимков довольно плохо автоматизируется. Я видел софт, помогающий в такого рода вещах, но он только облегчает ручную работу, не более того.
Ага, руками ;)
Почитайте в треде на zx.pk.ru
Сначала послойно отрисовали «картинку»
а после восстановили по ней схему
после — верилог, гоняли модель с тестами
на нем уже искали мелкие баги

у VSLAV уже есть беты верилога 1801вм1…

VSLAV — маньяк (в хорошем смысле этого слова)
А почему вручную, а не экстракцией?
Она не работает на той технологии?
Это тонкий момент… Экстракция конечно возможна и на nmos, все упирается в точность прорисовки слоев и поиск ошибок в результате. Когда экстракцию делают для теста — понятно, что условия тепличные, а тут еще и не используются стандартные ячейки, снижающих шанс ошибки…
А какие отличия в топологии от i8080? И с чем они связаны?
моё имхо — (т.к. нет картинки ВСЕХ версий/ревизий i8080, а их было достаточно много)
взяли за основу одну из них, а потом уже под свой техпроцесс подпиливали

вот сравните визуально
zeptobars.ru/en/read/kr580vm80a
zeptobars.ru/en/read/kr580ik80a

а вот фото кристалы 8080
regmedia.co.uk/2011/11/14/8080_die_small.jpg
homes.cs.washington.edu/~lazowska/faculty.lecture/chips/8080.gif
i1.wp.com/alt1040.hipertextual.com/files/2012/08/Intel-8080-layout-690x600.jpg
кстати из подписи «Intel 8080, 1975, 4,500 transistors „

явно видно что это близкие родственики.

а вобще visual6502.org/
это реверс 6502 и эмулятор на джаваскрипте ;)

В советском 8080 было исправлено около 40 ошибок интел. И это был единственный случай, когда сам интел делал снятие топологии — в последних вариантах процессора ошибки исправлены были именно нашим способом. В начале 80-х я как раз еще студентом попал в группу технологов по 1810ВМ86, в которую входили и топологи, делавшие 580ВМ80 и весь набор обвязки. И видел это все в кремнии.
т.е. таки копия? ;)

«около 40 ошибок интел»
в инете не встречались «ошибки интел в кристале»

к сожалению похожих историй я слышал МНОГО :(
один «участник событий» доказывал что ВМ80 «100% наша разработака» :(

«сам интел делал снятие топологии» — вот уж совсем не верю, зачем им это?

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

i8080 зарубежному миру очень мало интересен, на нём почти небыло машин
он достаточно быстро «проскочил» на горизонте
8085 — гораздо более распространён.

вышедшие 6502 & Z80 его сделали как стоячего, и их много копают.

Копия, копия. Не волнуйтесь. 100% «отечественная» разработка — это 1815ВМ85 (он же 8085), разработанный в Новосибирске по КМОП-технологии (оригинал на тот момент был МОП).
Отечественных версий 8080 только на моей памяти было не меньше 5. Из них один вариант был точно полностью «перетрассированный» с уменьшением площади кристалла.
Спасибо, ого!
5 версий!
в смысле в 5 разных местах делали реверсы?

ну про полность перетрассированный — понятно, когда есть «исходник», его можно и оптимизировать.
Имеется в виду 5 вариантов топологии. Снимали схему один-два раза. Дальше — уже ваяли сами.
Меня могут поправить, сказав, что был 8085 КМОП от Harris, но реально — Новосибирск сделал практически оригинальную разработку.
Так так, самое интересное упущено… и какие же секретные команды есть?
нет, i8080 изучен уже на 100%
отличий нет ;)
может только у военного исполнения были секретные команды MISSLE OUT / SELF DESTRUCT?
UFO just landed and posted this here
«Секретные» команды были в i8085 и однокристалках 8048 и 8051.
Спецкоманды технологические были в 8086/8088, 80186/80189. А в более поздних процессора уже использовалась другая технология тестирования ALU.
Мне бы ваши усидчивость, терпение и внимательность.
Где-то их у нас было. Нужно копать в кладовке. Обидно, если выкинул. И 80286 оно эмулировало преотвратно — имел удовольствие щупать. Кстати, где-то валяется оригинальный i80286 первых серий — был закуплен в СССР для изучения и создания клона. Материнская плата была вязанная (!!!) — т.е. трёхмерная структура проводников (причём, именно проводов в изоляции!), залитая в какой-то полимер.
Где-то, кстати, ещё и отечественный аналог Z80 ещё должен быть (в трёх ипостасях — оригинальный Zliog, отечественный КР1858ВМ1 и U880, корпусированный где-то в восточной Европе).
Всё, пошёл предаваться ностальгии и копаться в кладовке.
U880, корпусированный где-то в восточной Европе


U это самое настоящее немецкое качество (в смысле ГДР).
Я знаю. Но встречались странные советские клоны Z80 не немецкого производства — это были U880, которые ставили в корпуса другие заводы
А маркировка корпуса какая? Вроде как кто закатывает в пластик, тот и маркировку ставит?
Судя по всему он не совсем «отечественный»
похоже ГДР поделилась

ибо
смотрим у топикастера ;)
zeptobars.ru/ru/read/KR1858VM1-Z80-MME-Angstrem
КР1858ВМ1 — серийный Z80-совместимый процессор, производившийся в СССР. Надпись на кристалле «U880/6» подсказывает, что разрабатывался он также в восточной Германии в VEB Mikroelektronik «Karl Marx» in Erfurt (MME). По сравнению с Т34ВМ1 — площадь кристалла уменьшена в 1.6 раза, немного переработана периферия

ну и легендарный Т34
zeptobars.ru/ru/read/t34vm1-z80-angstrem-mme
Надпись на кристалле «U880/5» подсказывает, что он вероятно был произведен из комплекта масок, полученных от восточно-германской компании VEB Mikroelektronik «Karl Marx» in Erfurt (MME).
О, в «Векторе-06Ц» этот процессор был
У меня тоже нахлынули, хотя у меня вживую никогда компа на нём не было. Но в колледже на «микропроцессорных системах» нам приходилось работать на чемоданах с 16-ричной клавиатурой и 8 семисегментными индикаторами вместо экрана. И я решил сделать свой эмуль, на котором ассемблировать можно не в машинных кодах, а хотя бы мнемоническими командами. И где посмотреть все данные можно сразу. И где есть отладчик.
В общем, благодаря этому эмулю я разобрался с внутренним устройством этой системы куда лучше, чем сделал бы это, просто прослушав курс этих лекций.

P.S. Решив не останавливаться на достигнутом, планировал делать эмуль вплоть до уровня железа (о верилоге тогда не слышал вообще). Но досадный баг с GDI в Windows меня задолбал настолько, что я забросил его, так и не дописав графическую часть (задолбался перезагружать комп после каждой третьей отладки).
P.P.S. было приятно узнать, что этот эмуль (без «железного» уровня) использовался в колледже весьма долго и после моего окончания.
ну когда уже i8086!
А затем… чем чёрт не шутит, и i7 в качестве импортозамещения освоите…
Туннельно сканирующий микроскоп обеспечите?
i7 уже дешевле сделать с нуля, чем ковырять… :)
Как минимум, стырить интересные инженерные решения/оптимизации, которые не один год обдумывали и совершенствовали.
Чтобы их оттуда стырить, надо будет очень чётко понимать, где именно среди миллиардов транзисторов искать. И что именно искать. Просто просканировать весь чип на предмет «каких-то интересных решений» не хватит сил и времени.
Скажите, а реально было бы отреверсить какую-нибудь современную вкусную микросхему? Не обязательно такой уж супер высокой степени интеграции, но, например, быструю? Какой-нибудь LVDS-Serdes или микроконтроллер серии PIC10/PIC12 с микропотреблением мощности?
В принципе реально, но какой смысл их целиком реверсить? Там только если ключевые узлы подсмотреть как сделаны, а потом все равно сделать по-своему — получится проще и дешевле, чем целиком передирать. Особенно если у вас нет доступа к той самой технологии, по которой сделан оригинал.
Очень ламерский вопрос и, на 90% уверен, что — «да» но коли 8080 сделали, то нет ли верилог-модели более близкого нам z80?
на сколько я знаю реверса z80 еще нет, но вроде есть в планах
но на верелиоге есть коры z80 совместимых…
Как бы эта. С чего бы? Z80 — это существенно переработанная, улучшенная и, главное, усложнённая версия 8080. Понятно, что они близки, но ясно, что реверс проще завершить у более простого оригинала…
Потому что z80 имеет устойчиво большое сообщество спектрумистов, в частности. В сети довольно много всевозможных ПЛИС-версий Спектрумов и подобных 8-битных компов. Понятно, что потранзисторная реплика z80 им ни к чему… В общем, вопрос родился из таких вот соображений.
корок 8080 тоже есть много больше 1й ;)
причина то не в этом ;)
А нет желания/возможности декапнуть/реверснуть Холли из Дримкаста? Ту часть, которая контроллер шины.
А чего на psxdev к новостям комментарии нельзя писать? У меня есть некоторое количество ответов на задаваемые там вопросы.
У нас есть форум только на английском.

А в новостях комментарии оставлять движок не позволяет)
386 камней вроде не завалялось, совершенно точно есть 2 387 сопроцессора, вроде даже от разных производителей.
Нужно?
Вот были времена. Как вспоминаю, так за душу берёт. Тепло на душе становится, но как-то в то же время и грустно.

image
Помню, как в «ЮТ для умелых рук» публиковали по частям в спецвыпусках…
А как проводят сам реверсинженеринг, фотографию кристалла через прогу прогоняют или в ручную каждый транзистор переписывают?
Вручную. Для упрощения, как я понял, вся топология еще и перерисовывается, что бы все элементы были четко видны.
Есть небольшой вопрос — сколько LE занимает процессор в FPGA?
Может быть вопрос запоздалый.

А зачем три источника питания +5V, -5V, +12V?
Знаю, что вроде бы как -5V подается на подложку.
Подозреваю, что бы запереть паразитные диоды Шоттки образованные на границе подложка-металлизация. Так?
А +12-то зачем? Неужели ядро работает на таком напряжении?
Этот вопрос никогда не поздно задать — сам его задавал в прошлом :-)

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

12V — открывает транзисторы в верхнем ключе, т.к.PMOS транзисторов нет, вместо верхнего PMOS — всегда открытый NMOS. А гарантированно открыть его во всех ситуациях можно от 10-12V на затворе. Вместо этих постоянно открытых транзисторов можно было бы просто поставить резисторы — но транзисторы меньше по площади.
Только что проверил на «Специалисте», действительно звёлся при нуле вместо -5V. Кроме процессора, в этом компьютере напряжение -5V использует ещё только усилитель считывания с магнитофона.
Вчера обнаружился 386sx вроде, и пара 286 amd. Может пригодятся?
То что вы делаете — это круто!
Но я никак не понимаю зачем?
Это голый энтузиазм или изощрённый пиар, который помогает найти клиентов с заказами на взлом реальных кристаллов и прошивок?
Мы просто любим колупаться в старом железе, а запасы деталей для них понемногу исчерпываются, вот и сидим, эмулируем в ПЛИС. А особо упоротыеувлеченные личности ковыряют кристаллы, выявляя их функционал для 100% эмуляции работы.
PS: У меня у самого под десяток спектрумов валяется, из которых с половину рабочие ;)
UFO just landed and posted this here
Sign up to leave a comment.

Articles