Символьная обработка данных


Проектируемое устройство, физически представляющее собой плату расширения на системном интерфейсе PCI, логически должно быть доступно в адресном пространстве ввода-вывода. Обмен информацией между центральным процессором (пользовательской программой) и устройством может осуществляться через регистры состояния и команд. Строка для сравнения должна записываться программными методами в память устройства на адресном пространстве ввода-вывода. Устройство должно быть конфигурируемым в соответствии с системными соглашениями. При обмене данными должны по возможности использоваться высокопроизводительные методы блочной пересылки.

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

Данный проект представляет собой упрощённый вариант подобного устройства. В нём реализованы только две операции символьной обработки: поиск и замена подстрок.