LINUX.ORG.RU
ФорумTalks

Делаем анти-штеуд

 ,


1

2

Как мы выяснили в другом треде, штеуд есть зонд. А что если нам сделать свой штеуд? Теоретически 130нм позволяет это сделать как по цене, так и по производительности.

Дело в том, что мну давно уже пилит свой процессор. В том числе я продумал но не до конца систему полубинарной трансляции. Почему полубинарной?

Основная проблема бинарной трансляции х86 например в арм - это несоответсвие адресов команд х86 их аналогам в армокоде. Ввести непосредственно х86 мы не можем ибо патенты. Скотинки предлагают ввести в теоретический процессор систему команд эквивалентную или расширяющую таковую но в других кодах. Этим мы обходим патент.

Физическая реализация такова: адресное пространство программы делится на несколько зон. Одна зона соответствует «обычному» режиму работы. Для х86-32 это 0-4гб. Для х86-64 это канонические адреса.

Еще одна зона используется для адресации транслированного кода. Эта зона лежит в области неканонических адресов х86-64, отличается рядом инвертированных старших битов от соответсвующих канонических адресов, а младшие биты сдвинуты влево на единицу. Таким образом, каждому байту машинного кода х86 соответствуют два байта оттранслированного кода. Процессор в режиме эмуляции х86 обращается не к фактическим адресам A которые получает фактически от программы, а к адресам (A*2) XOR K где K - это маска тех самых инвертированных старших битов. Если этим адресам соответствует страница, производится выборка байт команд из неё. Если нет - происходит исключение.

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

Из плюсов: у нас получается своя, непатентованная система команд. При этом система бинарной трансляции именно что простая. 1-в-1 или близко к тому.

Из минусов: я пока не нашел как закодировать все х86 команды, тем более х86-64. Но тут накладывается фишка чисто моей архитектуры, которую я хотел сунуть под низ.

Какие фундаментальные проблемы видны кому-либо на этом этапе?

☆☆☆

Ответ на: комментарий от ckotinko

Крутяк. (Иначе оценить не могу, ибо не в теме вообще).

А как вообще прогресс? Через сколько лет ждать в кремнии?

dk-
()
Ответ на: комментарий от Nervous

Сначала детские рисунки. Могу дать контакт хУдожика.

dk-
()
Ответ на: комментарий от dk-

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

моя позиция такова:

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

то есть в теории можно запилить процессор, а в реальности я столкнулся с тем что verilator не пригоден. он просто не может.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от ckotinko

Конечно троллю. И даже с издёвкой.

Но в этом случае тут совсем непричем твои «альтернативные взгляды».

Дело в подходе «я бы сделал бы ибо все придумал осталось лишь сделать».

Сколько сотен вам таких на Лоре? А хоть один хоть что-то реальное родил?

При этом я понимаю, что в отличие от меня (полный 0) ты в теме что-то знаешь.

Но результат твой будет такой же как мой. Никакой.

dk-
()
Ответ на: комментарий от dk-

я б с удовольствием. но..

во-первых я работаю на работе. а она отъедает собственно рабочее время. в теории я бы мог работать после работы, но у меня есть жена. её надо например трахать. ну вот такая вот проблема: жену надо трахать, надо как-то для этого к ней подкатывать, трали-вали, всё такое. короче, времени не остается.

опять же. окей, пусть у меня есть время. хорошо. вот почему я не пишу проц на верилоге? объясняю: потому что в реальности у тебя есть такие параметры как задержка сигнала(не совсем задержка - но пусть). в реальности у тебя SRAM можно разогнать и работать с ним на 4х-частоте. ну реально обычный 90нм-SRAM 128x36 легко выдает 200пикосекунд от входа до выхода. это значит, что у тебя в АЛУ можно совместить например порт данных А и порт данных Б.

В чем тут проблема? А в том что на FPGA это уже не моделируется. более того. вышеописанная фишка это реальный бонус при разработке(у тебя одна шина вместо двух) и это всё узнается только в момент раскладки по чипу.

вот почему я вдруг стал пилить свой кисий язык. не потому что мне нечем заняться. а потому что задача «циклическая», и я думаю, что можно накидать общее решение на С++-подобном языке*, обрисовать его на 2D-карте, и дальше доводить за счет того, что помимо языка высокого уровня у нас будет язык перевода в более низкий уровень.**

*)я пробовал system-C. его кстати в AMD используют. но это тоже какой то лютый пизец.

**) собственно кисий язык это язык похожий на С++ но он работает с «рецептами». например тебе надо работать с сокетами. у тебя есть рецепт сокетов на С, рецепт сокетов на Qt, рецепт сокетов на libev и т.д. и тебе похер, на чем конкретно будут запилены сокеты.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от Harald

IMHO, это вообще никак не влияет. Если кто-то может, имеет желание и возможность делать, он делает. Язвительные замечания и троллинг на форуме по сравнению с внутренними проблемами типа лени это просто ничто. Ты его троллишь, забываешь. Через месяц смотришь, а он делает, и вообще серьёзно продвинулся.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

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

у нас уже есть сложившаяся экосистема разработки асиков и тут прихожу я и говорю что не хочу все это знать и платить конские деньги за софт, который выглядит как говно, и работает как говно. а я с ним работал. Ну правда, за эти конские деньги мне должна тянка сосать а другая кофе приносить. А вместо этого мы видим тупо оскорбление моих глаз. Кто видел virtuoso6.10 тот поймёт. Ну серьёзно - это что, CAD? это педерастия с лиспом внутри. это педерастия которая не хочет уметь в domino logic. я даже не хочу понимать как это заставить работать.

я просто поставил себе задачу и её потихоньку когчу. я хочу в итоге сделать IDE для всего(в общем случае) и в частном для разработки ASICов.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от ckotinko

жену надо трахать, надо как-то для этого к ней подкатывать

Как все запущено... В нормальной паре просто трахаются. Т.к. оно обоим в радость.

Про тех. часть:
Мне это писать бесполезно - яж фотограф.

Резюме:
Ну так и не анонсируй мегапроекты, если даже сам понимаешь, что не потянуть. Не?

dk-
()
Ответ на: комментарий от dk-

да я пошутил про жену.

нет, буду аннонсировать. я просто это беру и делаю. просто задача реально оказалась сложнее.

просто я делаю «не язык программирования». тут главное что «не язык» .я пока не знаю как это объяснить. но суть в том что меня задолбало делать одно и тоже. и я подумал что комп может это делать железобетонно, безошибочно и т.д.

это на самом деле побочная задача. просто текущая постановка задачи такова, что надо делать autocomplete ввода, парсить данные и давать данные по latency в realtime. Это моя техзадача, и она оказалась реально сложной. если я её запилю, то потом будет IDE где можно будет FPGA прогать, а может быть и ASIC делать. если нет то я лох.

ckotinko ☆☆☆
() автор топика
25 марта 2018 г.
Ответ на: комментарий от ckotinko

ну вот не может он вымереть. не может он вымереть пока есть проприетарщина и всё тут.

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

/0

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

хочешь сделать его x86 совместимым, чтобы он мог запускать проприетарщину?

Чтобы он хоть кому-то был нужен. Может быть (на самом деле не может).

tailgunner ★★★★★
()
Ответ на: комментарий от dikiy

ну и ули? ну пусть будут закладки, людям играть надо. а от закладок надо аппаратно защищаться, это кстати совсем недорого.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от ckotinko

ну и ули? ну пусть будут закладки, людям играть надо. а от закладок надо аппаратно защищаться, это кстати совсем недорого.

Вообще-то в топике было вот это:

Как мы выяснили в другом треде, штеуд есть зонд. А что если нам сделать свой штеуд?



от закладок надо аппаратно защищаться, это кстати совсем недорого.

кстати как?

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от dikiy

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

ckotinko ☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.