МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Минималистичное софт-ядро для Марсохода.

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5167

Leka пишет:

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

Меня это давно занимало, см давнишнюю тему на другом форуме: electronix.ru/forum?showtopic=72901 .

интересная тема на electronix.ru :) из тех ее участков, где меньше исходников и больше глобальных рассуждений о профессиях, проектах и т.д., сладывается такое впечатление, что люди не по наслышке знают о процессе разработки каких-то коммерчески успешных устройств, что требует недешевого инструментария и чужой интеллектуальной собственности - короче не хобби, а того, что должно окупиться. При этом про китайцев говорят не как о заказчиках, а как о коллегах или конкурентах. Всякий раз, когда посещаю такие непопулярные (в хорошем смысле) ресурсы, задаюсь вопросом - кто все эти люди? Они работают на зарубежных работодателей? Просто я оглядываю свой окружающий мир взглядом - ни одной вещи российского производства. Где все эти DVD проигрыватели с DSP процессорами и кодеками, о которых они говорят там? Или на них стоят товарные знаки на английском языке? Или этих людей в стране очень мало и им хватает работы по обслуживанию продавцов ресурсов и связи - нефтегазоэлектро... Рефлектометры для газо,нефте,телерадиопроводов разрабатывают?

Я, чтобы аналоговую часть для своего хоббийного осцилографа делать, купил сейчас осциллограф нехоббийный. Как в том анекдоте - покупаю водку, чтобы пустые бутылки сдать, а деньги пропить:) В процессе выбора смотрел наши, со времен аналоговых, так то, что мне понравилось от актакома, оказалось iwatsu :) Остальное тоже наверняка даже не Япония, а OEM Китай с нашим лейблом. И это не бытовая техника, а средство производства. Взял аналоговый tektronix для начала, потом буду брать rigol, наверное. А видели цены на якобы отечественные аппараты? Они ЭМИ выдерживают что ли?

У меня есть версия объяснения всего этого. Грустная немного из-за моего во всем этом месторасположения, но зато понятная. Специализация стран, глобализация, менеджеры в политике и т.д. Но люди на форумах так бодро общаются на профессиональные темы, что появляется надежда, что я просто магазинами ошибся или чего-то не знаю про лейблы. Что российское надо купить, чтобы там была внутри ПЛИС и в ней прошивка написанная россиянином? Может тему создать для перечня?

P.S.

Leka пишет: Так что эту тему сворачиваю.

Кстати, раз тема закрывается... Я наблюдал за этой темой с определенной "корыстью", зацепившись за слово "минималистичное" - думаю чем заменить свой brainfuck-подобный процессор, который сделал для удовольствия, на что-то под что можно работь с gcс или clang. Мне вот для того же осциллографа не нужно никаких конвейеров и прочей борьбы за скорость - просто кнопки и датчики опросить и меню и значения алфавитноцифровые на экран вывести. SoC тут много, мне ни RTOS, ни Linux не нужны. Все (кроме усеченного avr с сайта marsohod.org, который не подходит для Си компиляторов), что пока на opencores на тему avr и msp430 нашел - показалось с какими-то излишествами ради подобия микроконтроллерам (таймеры, порты, UART) или скорости (конвейеры). Или конвейеры и погоня за скоростью не приводят к росту процессора? Кто из soft cpu самый маленький?

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

Последнее редактирование: от Chaosorg.

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5170

  • Leka
  • Leka аватар Автор темы
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54

просто магазинами ошибся

Думаю - страной. Или эпохой. Коммерческий успех, и интересная(по содержанию, а не оплате) работа - взаимоисключающие понятия(редкие исключения не в счет).

Или конвейеры и погоня за скоростью не приводят к росту процессора?

Смотря как это реализовано, естественный конвейер не требует лишних ЛЕ.
Можно запустить синтез м16, и посмотреть распределение ЛЕ по блокам:
core - 223 LE, из них:
fsm - 37 LE - автомат, обслуживающий 3х-уровневый конвейер,
selB - 35 LE - логика, связанная с разными методами адресации,
rgPC - 35 LE - логика, связанная с программным счетчиком,
rgACC - 17 LE - аккумулятор,
alu - 99 LE - собственно АЛУ.
Если выбросить 3х-уровневый конвейер, уменьшим число ЛЕ на ~~20 штук, тк какой-то более простой автомат все-равно понадобится для огранизации переходов и тп. (~~20 ЛЕ можно сэкономить, добавив некоторые оптимизации, но они затрудняют понимание кода.)
Предельно упростив ядро, но оставив возможность использовать LCC, можно сэкономить ~50 ЛЕ, но смысла в этом нет. Периферия и так много больше ресурсов займет.

Кто из soft cpu самый маленький?

Смотреть только те, что специально заточены под ПЛИС, и под конкретные семейства.
Спасибо сказали: Chaosorg

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

Последнее редактирование: от Leka.

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5171

Leka пишет: Смотреть только те, что специально заточены под ПЛИС, и под конкретные семейства.

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

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

Кстати, я бы (в зависимости от возможностей устройства) мог бы купить шилд, превращающий Марсоход в осциллограф. Но решение о выборе определялось бы соотношением цены и возможностей.

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

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5172

alman пишет:

Leka пишет: Смотреть только те, что специально заточены под ПЛИС, и под конкретные семейства.

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

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

Кстати, я бы (в зависимости от возможностей устройства) мог бы купить шилд, превращающий Марсоход в осциллограф. Но решение о выборе определялось бы соотношением цены и возможностей.


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

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

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

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

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5173

Chaosorg пишет: Я думал, что есть какой-то победитель.


Изначально победитель Ynicky и его SoC. Сейчас он - лидер "гонки" и далеко впереди соперников.
Все исходники доступны в его теме - попробуйте. Возможно это будет самым коротким путём к успеху - хорошая архитектура и высокая степень готовности. Идея во взаимном сотрудничестве - Вы получаете персональную поддержку, автор получает пользователя. В результате оба проекта развиваются.

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

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5174

  • Leka
  • Leka аватар Автор темы
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
"Инвентаризация" софт-процессоров:

opencores.org/project,up_core_list,downloads

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

Последнее редактирование: от Leka.

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5177

  • Leka
  • Leka аватар Автор темы
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54

Я думал, что есть какой-то победитель.

"Идеального" процессора нет и не будет. Разные задачи - разные критерии оптимальности.
Выше ссылка на "инвентаризацию" ядер, можно составить общее представление.

Что касается м16, то для более-менее законченного проекта надо:
1) добавить прерывание (много ЛЕ это не потребует),
2) переписать на Си и выложить в открытый доступ ассемблер.
У меня на это уже нет ни времени, ни желания, тк опять переключился на основной проект. Разве что потом попробую на следующей версии "С как HDL"...

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

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5178

Leka пишет:

Я думал, что есть какой-то победитель.

"Идеального" процессора нет и не будет. Разные задачи - разные критерии оптимальности.
Выше ссылка на "инвентаризацию" ядер, можно составить общее представление.

Что касается м16, то для более-менее законченного проекта надо:
1) добавить прерывание (много ЛЕ это не потребует),
2) переписать на Си и выложить в открытый доступ ассемблер.
У меня на это уже нет ни времени, ни желания, тк опять переключился на основной проект. Разве что потом попробую на следующей версии "С как HDL"...


Я не говорил про идеальный процессор, а описал свои потребности. Наверняка это целый класс задач для ПЛИС - сугубо интерфейс. Т.е. когда все быстрое и мощное сделано аппаратно и живет в своем масштабе времени, а CPU лишь для интерфейса с человеком с невысокой скоростью обновления.

Мне вот даже прерывание не понадобилось, чтобы опросить датчики, кнопки и вывести текстовый интерфейс и меняющиеся значения в разных системах исчисления на алфавитно-цифровой экран. Мой "шуточный" проц все операции производит между двумя ячейками памяти, на которые показывают два индексных регистра - даже аккумулятора нет, в привычном понимании. Нет разновидностей адресации аргументов. Зато мне некуда девать память и я могу себе позволить компенсировать скудность системы команд за счет громоздкости программ. Например, операции приводят к автоинкременту индексных регистров, поэтому, чтобы сложить не два байта, а два 64битных слова мне достаточно четыре раза подряд сделать + :) Тем более, все операции моего процессора кодируются ascii кодом подходящего по смыслу символа - я пишу в блокноте сразу бинарные исполняемые файлы для проца и они читаемы человеком. Это забава, но по Тьюрингу полнота выполнена :) Я это рассказываю, чтобы показать, что настолько несерьезный процессор, вообще без оптимизаций, что-то смог практически.

Короче, для меня критерий - минимальная длина на HDL, но с тулчейном (которого у меня сейчас нет) - вот так, наверное, правильнее всего.

За таблицу с инвентаризацией спасибо - я пока с ней еще разбираюсь. Кажется не нахожу в ней некоторых интересных процессоров. Ее обновляют периодически? И, вообще, с какой страницы и в рамках какой работы она публикуется? (нашел)

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

Последнее редактирование: от Chaosorg.

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5179

  • Leka
  • Leka аватар Автор темы
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54

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

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

...критерий - минимальная длина на HDL, но с тулчейном

Захочется, например, сделать запись осциллограммы на флешку - проще всего будет найти Си-исходники для какого-нибудь мелкого микроконтроллера, и модифицировать под свои нужды. Лучше сразу добавить в требования наличие Си-компилятора. Ассемблера недостаточно.

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

Последнее редактирование: от Leka.

Минималистичное софт-ядро для Марсохода. 3 года 10 мес. назад #5180

Leka пишет:

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

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

...критерий - минимальная длина на HDL, но с тулчейном

Захочется, например, сделать запись осциллограммы на флешку - проще всего будет найти Си-исходники для какого-нибудь мелкого микроконтроллера, и модифицировать под свои нужды. Лучше сразу добавить в требования наличие Си-компилятора. Ассемблера недостаточно.


Согласен про Си - поэтому и говорю про toolchain. А ассемблер, в лучшем случае, является его частью. И про прерывания тоже согласен, но мыслю это отдельной задачей, видимо потому, что помню времена, когда за формирование вектора прерывания отвечала отдельная микросхема. И раз уж заговорили про USB host, то с его поисками еще сложнее - я пока у хоббистов в этой области успехов на FPGA не нашел, а только на комбинированных с микроконтроллером и аппаратным USB host контроллером решениях. Собственно из-за этого у меня все в моих проектах и затормозилось. Надеюсь временно.

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

Последнее редактирование: от Chaosorg.
Время создания страницы: 0.239 секунд

ВКонтакте  facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Forum Наш форум Проекты пользователей Минималистичное софт-ядро для Марсохода.