May 28th, 2016

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





Кто-то парсирует текстовый файл программой на Питоне, другой пишет скрипт с регулярными выражениями на Перле, Си-программист стыдливо возится с буферами и указателями, иногда применяя Yacc и Lex.

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

- А как это?, - спросил меня знакомый, - С помощью Ардуино?

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

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

- Нет, термин "микрокод" использовался для специфической организации процессоров в 1970-е годы, потом его использование сошло на нет, - ответил я и добавил, - Правда есть еще микрооперации в интеловских процессорах, в которые перекодируется x86, но это тоже другое. Нет, я имею в виду парсинг текста устройством, состоящим из логических элементов И-ИЛИ-НЕ и Д-триггерами, как на картинке ниже.

- Невозможно! - воскликнул мой приятель, - в таком устройстве где-то сбоку должен сидеть процессор и хитро подмигивать!

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

- Нуу, машина Тьюринга, - протянул приятель, - это абстракция, типа Демона Максвелла.

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

mfp_srec_parser_fragment


Collapse )

Какие из тем, затронутых в этом посте вы хотели бы раскрыть полнее?

Пошаговое объяснение, как кодировать простейший конечный автомат на Verilog и/или VHDL
3(33.3%)
Пошаговое объяснение, как подсоединить к системе MIPSfpga какое-нибудь периферийное устройство
0(0.0%)
Как наблюдать работу кэша в "замедленной съемке" работы процессора на частоте 1 такт в секунду
1(11.1%)
Как наблюдать в "замедленной съемке" работу конвейера процессора и его байпасы
1(11.1%)
Использование MIPSfpga для иллюстрации работы прерываний
2(22.2%)
Использование MIPSfpga для создания многоядерных систем
2(22.2%)
У меня есть другая идея (пояснить в комментариях)
0(0.0%)