|
Патент на код
Введение
Патент на код оформляется для защиты новых и уникальных аппаратно-ориентированных технических решений в области оптимизации использования внутренних особенностей архитектуры или принципов использования конкретных моделей или серий вычислителей и/или вычислительных сред.
Зачем патентовать код программы
В общем случае код программы патентном не защищается, но может быть зарегистрирован, так как представляет собой текст, который может быть легко и многократно модифицирован и превращён в другой текст.
При такой модификации действие первоначальной защиты текста прекращается, но принципы и логика работы программы, которые были заложены в первоначальном тексте, могут полностью сохраняться.
В тоже время, в некоторых узкоспециализированных случаях легкая и многократная модификация текста программы затруднительна или приводит к снижению качественных характеристик программного кода получаемого в результате подобных модификаций (времени исполнения, требований к ресурсам и т.д.).
Такая ситуация встречается в случаях оптимизации кода под использование внутренних особенностей архитектуры или принципов работы конкретных моделей или серий вычислителей или вычислительных сред.
В подобных случаях может быть оформлен обычный полноценный патент на программный код.
Виды патентов на код
Основными видами патентов на код являются "Патент разработчика", "Оптимизация ядра", и "Игольное ушко".
Рассмотрим их более подробно.
"Патент разработчика"
Патенты разработчиков это наиболее частый вид патентов на программный код.
Появление этих патентов вызвано тем, что внутренние особенности архитектур вычислителей и вычислительных сред известны их собственным разработкам намного раньше, чем всем остальным пользователям, соответственно разработчикам известны и наиболее выигрышные и эффективные способы и принципы использования этих внутренних особенностей.
По этой причине логично ожидать, что защищая аппаратные разработки, разработчики захотят защитить и наиболее выигрышные и эффективные способы и принципы использования внутренних конструктивных и архитектурных особенностей этих собственных разработок.
Подобные патенты обычно оформляются в виде связки "Устройство + Способы его использования".
Подобным образом защищаются коды программ DSP-процессоров, микроконтроллеров, чипсетов и т.д.
"Оптимизация ядра"
Подавляющая часть программ пишется в нотации, удобной для визуального и мнемонического восприятия текста человеком.
Однако языком восприятия и общения реальных устройств в их реальном физическим мире являются уровни напряжения или токи на ножках-выводах микросхем.
При переводе/переходе с верхнего уровня описания на более низкий, происходит многократная трансляция и преобразование, и замена одних команд и действий другими, всё более и более простыми, но зато намного более многочисленными.
Так одна, самая безобидная строка Java-программы при переходе на реальный физический уровень может породить миллионы операций сдвигов регистров и побитного суммирования.
Написание программ в командах микросхем к счастью происходит нечасто, однако встречаются ситуации, когда на достаточно низком уровне иерархии находится микропрограмма, которая выполняется многократно или вообще постоянно (т.н. "микропрограмма ядра").
Снижение времени исполнения такой микропрограммы на 10% часто означает снижение на те же 10% времени исполнения всей пользовательской программы.
Логично желание максимальной оптимизации подобной микропрограммы.
Производится такая оптимизация путём изучения архитектуры конкретного вычислительного уровня, и написания кода, максимально и оптимально его использующего.
"Игольное ушко"
Игольное ушко это название класса кода, который был аппаратно оптимизирован не для максимальной скорости исполнения, а для "вписывания" вычислительного процесса в какие то очень узкие и жёсткие рамки.
Это может быть код для полиграфически изготовляемой RFID-метки, код для датчика температуры с питанием от самой термопары, код для нано-контроллёра лампы уличного освещения и т.д.
В подобных случаях используя аппаратные ресурсы типа двух регистров, одного сумматора, и одного канала ввода/вывода с шумом 50%, надо реализовать заданный функционал, при этом сам код должен вписаться в 500 байт (не "кило"), так как больше просто нет, и не будет.
Подобные патенты оформляются в виде связки "Устройство + Способы его использования", при этом аппаратура и код изначально разрабатываются как единое целое.
Структура патентов на код
Патент на код имеет структуру "Способ" + "Маска", и как правило плюс устройство.
В устройстве описывается архитектура и/или особенности вычислителя, на котором код исполняется.
В способе использования описывается функционал программы, с подробным описанием того в каком порядке и как именно операции кода исполняются на тех или иных конкретных элементах архитектуры вычислителя или системы.
Непосредственно сам текст кода описывается, патентуется и защищается не как реальный листинг реальной программы (как было указано выше из-за возможности модификации текста это не имеет смысла), а как текстовые маски, включающие в себя и описывающие все возможные варианты конкретных значений параметров и текстовых переменных.
Готовятся такие маски относительно просто, - берутся последовательности функциональных операций из способа, и записываются как инструкции вычислителю, с использованием, и в нотации его собственных внутренних команд.
Фактические значения переменных при этом описываются как данные: "переменная-1", "переменная-2" и т.д., а операторы - как фактические действия: "сложение", "умножение" и т.д., при аппаратной зависимости операций - указываются адресаты инструкций "сложение на сумматоре №1", "умножение на интеграторе №2" и т.д.
Общеизвестные действия, типа ввода или вывода при этом не описываются (если конечно они сами не являются предметом защиты).
Подобные маски позволяют покрывать все возможные варианты конкретных листингов программы, при этом наличие в патенте описания способа выполняет функцию дублирования и подстраховки.
Стоимость работ по получению патента на код зависит от сложности решения и объёма его описания и от выбранных форм защиты, и может составлять от $500 для получения международного патентного приоритета (1 стр. формулы), и до величин, ограниченных только общей экономической целесообразностью.
Более подробно с тарификацией различных работ можно в разделе "Сроки & Цены".
Заказать услуги по патентованию можно в разделе "Сделать заказ/Патентование".
|
|
|