?

Log in

No account? Create an account
Как делать парсинг текста голым хардвером, без процессора и без софтвера - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Как делать парсинг текста голым хардвером, без процессора и без софтвера [Mar. 9th, 2016|11:17 pm]
Yuri Panchul
Написал пост на Хабре - http://habrahabr.ru/post/278681/:



Как делать парсинг текста голым хардвером, без процессора и без софтвера







Дальше - http://habrahabr.ru/post/278681/





Ну как вам пост?

Очень глубокомысленно
5(25.0%)
Я вздрогнула
6(30.0%)
Почему нету картинки машины Тьюринга?
7(35.0%)
Я жажду еще одного репортажа о борьбе российской и украинской оппозиции против Путина в Сан-Франциско
2(10.0%)
Из-за бугра плюете?
0(0.0%)
LinkReply

Comments:
[User Picture]From: con_vertor
2016-03-10 08:06 am (UTC)
>— А как это?, — спросил меня знакомый, — С помощью Ардуино?

— Внутри Ардуино стоит вполне фон-неймановский процессор и работает программа, — ответил я, — Нет, еще более голое железо.

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

что-то у знакомого вообще каша в голове.
уж что такое Ардуинка и микрокод процессоров все знают.

>1. Зачем мне понадобилось парсировать текст хардвером без софтвера

что-то в тексте после этого пункта ответа на вопрос не проследилось...

ну а дальше вообще пошёл не хардвер, а хардкор - с подробным описанием шагов и кодом -
у того знакомого, который не отличает Ардуину от микрокода - наверно, вообще мозги закипели.

хотя окончания истории мы не знаем - может он пошёл тут же и запилил микропроцессор на fpga...

Edited at 2016-03-10 08:07 am (UTC)
(Reply) (Thread)
[User Picture]From: bloggersha_ru
2017-06-02 02:42 am (UTC)
А что такое микрокод процессора который все знают?
(Reply) (Parent) (Thread)
[User Picture]From: con_vertor
2017-06-02 07:33 am (UTC)
комменту год...

Микрокод - софтверная прослойка в процессоре, которая управляет как именно будут исполняться на нем команды.

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

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

Ведь микрокод, да и интеловский процессор проприетарны и залицензированы.
(Reply) (Parent) (Thread)
[User Picture]From: bloggersha_ru
2017-06-02 04:39 pm (UTC)
Вы хотите сказать, что после того, как процессор Intel Core i7 выбирает из памяти инструкцию типа "mov $1, %rax", он лезет в некоторую память, из которой выбирает одну за другой микроинструкции (комбинации из контрольных сигналов и следующего адреса в этой памяти микрокода), как это делал в 1970-х годах DEC VAX-11?
(Reply) (Parent) (Thread)
[User Picture]From: con_vertor
2017-06-03 10:15 pm (UTC)
ну простые инструкции могут и напрямую исполняться, я так думаю.

и вообще, Юра, перелогинтесь.
(Reply) (Parent) (Thread)
[User Picture]From: archaicos
2016-03-10 08:08 am (UTC)
Отлично. Телефон обрезал заголовок ссылки до "как делать парсинг текста голым". И фотка в тему. :)
(Reply) (Thread)
[User Picture]From: oren_56
2016-03-10 09:28 am (UTC)
Язык сломал и мозг немного)))
(Reply) (Thread)
[User Picture]From: craftwr
2016-03-10 10:01 am (UTC)
Панчул уже порно начал постить..
(Reply) (Thread)
[User Picture]From: mister_hyister
2016-03-10 11:51 am (UTC)
Ожидал, что на хабре яростно заминусуют и обосрут в комментах.
Там ведь у всех гордости много, и каждый себя гением мнит.
А тут ещё вылез дядя с длиннопостом, умные вещи рассказывает.
(Reply) (Thread)
[User Picture]From: panchul
2016-03-10 04:35 pm (UTC)
Да, на Хабре на этот раз народ в благодушном настроении
(Reply) (Parent) (Thread)
[User Picture]From: nicka_startcev
2016-03-10 12:07 pm (UTC)
типично, на платах с фпга стоит флешка избыточной емкости. то есть, в нее после прошивки фпга можно положить и "программу для процессора", и пусть аппаратный загрузчик при старте тупо заливает эти битики в память.

тогда при смене программы можно не пересобирая прошивку полностью или залить программу, или скомпоновать ее с прошивкой и залить целиком.
(Reply) (Thread)
[User Picture]From: panchul
2016-03-10 04:34 pm (UTC)
На несколько секунд дольше и менее портабильно на разные платы имхо
(Reply) (Parent) (Thread)
[User Picture]From: nicka_startcev
2016-03-10 05:17 pm (UTC)
для компиляторов/линковщиков обычно есть стандарты на промежуточные файлы, продуманные так, что при мелком изменении проекта не надо пересобирать всё с нуля.

жаль что у фпга с этим всё плохо
(Reply) (Parent) (Thread)
[User Picture]From: docjeck
2016-03-10 02:49 pm (UTC)
Всю статью ниасилил, но на вопрос: " А можно ли парсировать текст голым железом? Вообще без программы?" отвечаю словами Таненбаума из книги "Архитектура компьютера": "Аппаратное и программное обеспечение логически эквивалентны".
И далее объяснения: "Любая операция, выполняемая программным обеспечением, может быть встроена в аппаратное обеспечение (желательно после того, как она осознана). Карен Панетта Ленц говорил; «Аппаратное обеспечение — это всего лишь окаменевшее программное обеспечение». Конечно, обратное тоже верно: любая команда, выполняемая аппаратным обеспечением, может быть смоделирована в программном обеспечении. Решение разделить функции аппаратного и программного обеспечения основано на таких факторах, как стоимость, скорость, надежность, а также частота ожидаемых изменений. Существует несколько жестких правил, сводящихся к тому, что X должен быть в аппаратном обеспечении, a Y должен программироваться.
Эти решения изменяются в зависимости от тенденций в развитии компьютерных технологий".
(Reply) (Thread)
[User Picture]From: panchul
2016-03-10 04:32 pm (UTC)
Да, это ценное дополнение, можно использовать в качестве анонса.
(Reply) (Parent) (Thread)
[User Picture]From: prof_killjoy
2016-03-10 03:06 pm (UTC)
Посмотрел я на статью с описанием этого Ужаса и вновь подумалось, а что, в делах mipsFPGA по-человечески делать уже совсем не принято, ну как у остального мира? Ну это, когда вообще без единого торчка и всяких аппаратных парсеров? Что ни простейшая задача, то прямо раз за разом Подвиг Геракла. Или скорее всякие анекдоты приходят на ум про экзамен на факутьтете гинекологии, когда через замочную скважину обоями были оклеены стены комнаты.
Честное слово, все это забавно конечно, но очень странно.
(Reply) (Thread)
[User Picture]From: panchul
2016-03-10 04:30 pm (UTC)
Ну мне было проще вот так! Чего тут сложного - 260 строк на верилоге. Зато софтвер всей этой кухни вообще не видит.

Сделайте как проще для вас, выставьте на Хабр - и всех делов.
(Reply) (Parent) (Thread)
[User Picture]From: nicka_startcev
2016-03-10 05:20 pm (UTC)
сама по себе вся эта проблема возникла только из-за кривизны/неудобства/закрытости "среды для синтеза", в которой можно делать разные академические извраты но сложно делать простые частовстречающиеся хорошоалгоритмизуемые вещи.
(Reply) (Parent) (Thread)
[User Picture]From: prof_killjoy
2016-03-11 02:26 pm (UTC)
Вот оказывается какие у нас нынче «революционеры образования» пошли. Примерно как товарищ Ленин в 17-м сказал революционным матросам «вы тут пока возьмите Зимний и в газету «Правда» напишите статью об итогах».

А если серьезно, так и меня лично и моих знакомых все грузится как надо, но уж точно не для этого ядра и совсем не понятно, зачем об этом писать на некий Хабр ?
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2016-03-11 04:10 pm (UTC)
У вас грузится программа в block memory синтезированной системы способом, который портабилен для Xilinx и Altera, работает под Windows и Linux, не завязан на альтеровские утилиты и проще чем 200 строк кода на верилоге? Держу пари, у вас где-то вылезает либо сложность (необходимость делать кусок действий на PC (в 4 вариантах - Win32, Win64, Linux32, Linux64), кусок - в софтвере в загрузчике), либо непортабильность (использование Altera-specific либо Xilinx-specific IP), с необходимостью для этого делать wrapper и т.д.
(Reply) (Parent) (Thread)
[User Picture]From: prof_killjoy
2016-03-12 10:24 pm (UTC)
Вопрос о числе строк для профессионала не имеет значения вообще. По крайней мере на уровне 260 или 2600. Главное, чтобы результат был без налета радиолюбительщины и без неудобств для использования.
Конкретно у моих коллег, а также в моем случае. Примерно 15Кб исходников на VHDL (под 400 строк) , а дальше пути расходятся, в одном случае код на Java для интеграции непосредственно в IDE (скажем Eclipse), либо на С (gdb server). Тысяч несколько строк примерно. В общей структуре проекта это вообще исчезающе малые усилия. Работают оба варианта примерно одинаково, в смысле без задержек при отладке вообще.
Про портабельность — Win/ Linux само собой. Altera/Xilinx само собой. А ничего другого и не нужно, ну разве для забавы. В OpenRISC для таких маргинальных случаев есть вариант с торчком например.
(Reply) (Parent) (Thread)
[User Picture]From: red_army_1917
2016-03-10 03:07 pm (UTC)
это может быть аппаратным backdoor-ом, если абстрагироваться от использованного интерфейса?
(Reply) (Thread)
[User Picture]From: panchul
2016-03-10 04:31 pm (UTC)
Конечно
(Reply) (Parent) (Thread)
[User Picture]From: ave_imperator
2016-03-10 05:12 pm (UTC)
ничего не понял, но посмотрел с уважением.
(Reply) (Thread)
[User Picture]From: spamsink
2016-03-10 06:07 pm (UTC)
Перекодировка из ASCII в шестнадцатиричные значения сделана "по-программистски". Case statement по идее будет компактнее.
(Reply) (Thread)
[User Picture]From: Anatoliy Sergiyenko
2016-03-10 06:15 pm (UTC)
Грамматический разбор подобен работе конечного автомата. Некие авторы описывают компилятор рядом с теорией автоматов. Так почему бы не строить парсеры как автоматы? Имеется ведь парадигма - автоматное программирование.
(Reply) (Parent) (Thread)
[User Picture]From: spamsink
2016-03-10 06:43 pm (UTC)
Это не мне комментарий.
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2016-03-10 06:20 pm (UTC)
Я проведу эксперимент
(Reply) (Parent) (Thread)
[User Picture]From: ilirium
2016-03-13 10:01 am (UTC)
Очень прикольно :) Дальше ещё сделать какой-нибудь аналог ed с автоматическим постингом в твиттер, и готов проект для кикстартера ;)
(Reply) (Thread)