МОДУЛЯРНЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ Российский патент 2009 года по МПК G06F7/57 

Описание патента на изобретение RU2373564C2

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

Известно специализированное вычислительное устройство, включающее в себя сумматор, выход которого подключен к второму входу регистра результата, регистр для хранения булевых переменных, выход которого подключен к блоку конъюнкций, регистры для фиксации очередных строк матриц, описывающих структуру соответствующей конъюнкции, выходы которых подключены также к блоку конъюнкций, выход которого подключен к третьему входу регистра результата, выход которого является шиной выдачи результата вычислений (Малюгин В.Д. Параллельные логические вычисления посредством арифметических полиномов. - М.: Наука. Физматлит, 1997. - С.156-157).

Недостаток известного устройства - большая длительность вычислений.

Наиболее близким по сущности технического решения к заявляемому устройству является специализированное вычислительное устройство, содержащее блок конъюнкций, входы которого являются шиной подачи значений булевых переменных, выходы которого подключены к блоку памяти, выходы которого подключены к входам коммутатора, выходы которого подключены к многоместному сумматору, выходы которого являются выходами устройства выдачи результата вычислений (Малюгин В.Д. Параллельные логические вычисления посредством арифметических полиномов. - М.: Наука. Физматлит, 1997. - С.154-155).

Недостаток известного устройства - большая длительность вычислений.

Цель изобретения - уменьшение длительности вычислений.

Поставленная цель достигается тем, что в специализированное устройство для логических вычислений (СУЛВ), содержащее коммутатор, входы которого являются входами устройства подачи n булевых переменных, блок конъюнкций, выходы которого подключены к первому блоку памяти, многоместный сумматор, выходы которого являются выходами устройства выдачи значений булевых функций, с целью уменьшения длительности вычислений введены 2k-1 блоков памяти, где k - количество булевых переменных разложения, 2n-k мультиплексоров, при этом входы (k+1)…n коммутатора подключены ко входам блока конъюнкций, выходы которого подключены ко входам второго, третьего и так далее, 2k-го блоков памяти соответственно, первые выходы блоков памяти подключены к информационным входам первого мультиплексора, вторые выходы блоков памяти подключены к информационным входам второго мультиплексора и так далее, (n-k)-е выходы блоков памяти подключены к информационным входам 2n-k-го мультиплексора соответственно, выходы мультиплексоров подключены ко входам многоместного сумматора, а первый, второй и так далее, k-й адресные входы мультиплексоров соединены соответственно с первым, вторым и так далее, k-м выходами коммутатора.

Структурная схема предлагаемого СУЛВ представлена на фиг.1. Пусть дана система булевых функций (СБФ): f1(x), f2(х), …, fd(х) от n булевых переменных x=x1,x2,…,xn (xi∈{0,1}, i=1,2,…,n):

где F(х) - значение, принимаемое d-выходной БФ.

Известно, что СБФ (1) можно однозначно представить в числовой нормальной форме (ЧНФ):

где α012,…αn∈Z, Z - множество целых чисел, F(x) при представлении в двоичной системе счисления интерпретируется как результат вычисления СБФ.

Пример 1. Пусть СБФ (1) задана формулами:

тогда ЧНФ (2) будет иметь вид:

присвоив булевым переменным значения x1=1, x2=1, x3=1, x4=1, получим

результат вычисления СБФ (3)

Так как число 9 в двоичной системе счисления запишется как (01001)2, то f1(x)=1, f2(x)=0, f3(x)=0, f4(x)=1, f5(x)=0 (значения f1(x) находится в младшем разряде (справа), а f5(x) -в старшем разряде слева)).

Известно, что СБФ (1) может быть единственным образом представлена на основе модулярной ЧНФ (2) в виде:

где d - количество реализуемых булевых функций, ,

(mod 2d) - указывает на то, что вычисление (5) выполняется в конечном кольце

- получение наименьшего неотрицательного вычета от x по модулю 2d.

Пример 2. Пусть дана ЧНФ (4) СБФ (3), тогда модулярная форма (5) будет иметь вид:

присвоив булевым переменным значения: x1=1, x2=1, x3=1, x4=1, получим:

- результат вычисления СБФ (3).

Известно, что любую СБФ, зависящую от n аргументов, можно разложить по переменным и представить в виде:

где

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

где - степень аргументов xk, pk - двоичная переменная величина такая, что

Придав фиксированные значения переменным разложения: 0…0; 0…1; …; 1…1, разложение (9) можно записать в виде

Пример 3. Пусть дана СБФ (3). Разложим каждую функцию по переменным x1, x3. Тогда СБФ будет иметь вид:

Объединим подфункции, полученные в результате разложения, в системы и присвоим булевым переменным значения x2=1, x4=1, представим каждую систему подфункций в ЧНФ:

а затем в модулярной ЧНФ:

Результат вычисления соответствует результату вычисления F(x).

Таким образом, для нахождения искомого результата достаточно вычислить только одну систему подфункций, представленную модулярной ЧНФ в соответствии с координатами, определяемыми значениями переменных разложения. В данном примере координатами системы подфункций являются значения переменных разложения x1=1, x3=1.

Предлагаемое устройство СУЛВ включает: входы 6.1,…,6.n подачи значений булевых переменных, коммутатор 1, блок 2 конъюнкций, блоки 3.1,…,3.2k памяти, мультиплексоры 4.1,…,4.2n-k, сумматор 5, выходы 7.1,…,7d выдачи значений булевых функций: fd(x),…,f1(x).

Входы 6.1,…,6.n подачи значений булевых переменных x1,x2,…,xn, которые являются входами устройства, являются и входами коммутатора 1, выходы (k+1)…n которого подключены ко входам блока 2 конъюнкций, выходы которого подключены ко входам блоков 3.1,…,3.2k памяти соответственно, первые выходы блоков 3.1,…,3.2k памяти подключены к информационным входам мультиплексора 4.1, вторые выходы блоков 3.1,…,3.2k памяти подключены к информационным входам мультиплексора 4.2 и так далее, (n-k)-e выходы блоков 3.1,…,3.2k памяти подключены к информационным входам мультиплексора 4.2n-k соответственно, выходы мультиплексоров 4.1,…,4.2n-k подключены ко входам многоместного сумматора 5, а первый, второй и так далее, k-й адресные входы мультиплексоров 4.1,…,4.2n-k соединены соответственно с первым, вторым и так далее, k-м выходами коммутатора 1. Выходы 7.1,…,7.d многоместного сумматора 5 являются выходами устройства выдачи значений булевых функций: fd(x),…,f1(x). Предлагаемое устройство работает следующим образом.

В исходном состоянии в блоки 3.1,…,3.2k памяти занесены группы коэффициентов: модулярных ЧНФ (11.1), (11.2),…,(11.2k) соответственно, полученных в результате разложения (9). В момент времени, соответствующий началу преобразования, на входы 6.1,…,6.n коммутатора 1 поступают значения булевых переменных x1,x2,…,xn. В коммутаторе 1 под воздействием внешних сигналов управления, в соответствии с заранее выполненным разложением (9) из состава поступивших переменных x1,x2,…,xn выделяются переменные разложения xi1,…,xik, которые поступают на адресные входы мультиплексоров 4.1,…,4.2n-k, а остальные - информационные переменные xik+1,…,xin - подаются далее на входы блока 2 конъюнкций. Блок 2 конъюнкций предназначен для вычисления конъюнкций: xik+1; xik+2; xik+1·xik+2;…; xik+1·xik+2·…·xin, которые поступают на входы блоков 3.1,…,3.2k памяти, с первых выходов которых коэффициенты поступают на информационные входы мультиплексора 4.1, со вторых выходов блоков 3.1,…,3.2k памяти коэффициенты , значения соответствующих конъюнкций которых равны 1, поступают на информационные входы мультиплексора 4.2 и так далее, с (n-k)-x выходов блоков 3.1,…,3,2k памяти коэффициенты значения соответствующих конъюнкций которых равны 1, поступают на информационные входы мультиплексора 4.2n-k. Общая задача мультиплексоров 4.1,…,4.2n-k заключается в том, чтобы в соответствии со значениями булевых переменных xi1…,xik, поступивших на адресные входы и определяющих параметр разложения, подать на входы многоместного сумматора 5 значения коэффициентов одной из подсистем БФ, представленной в модулярной ЧНФ. После преобразований в многоместном сумматоре 5 на выходы устройства поступают вычисленные значения СБФ в следующем порядке: fd(x), fd-1(x), …, f1(x).

Длительность функционирования СВУ - прототипа определяется как:

где Tк - длительность функционирования коммутатора,

Tбк - длительность функционирования блока конъюнкций,

Т∑прот - длительность функционирования многоместного сумматора прототипа,

T∑прот=ΔτЛЭ4dlog22n = ΔτЛЭ4dn, где ΔτЛЭ - время задержки одного двухвходового логического элемента (ЛЭ), n - количество булевых переменных, d - количество реализуемых булевых функций.

Длительность функционирования предлагаемого СУЛВ определяется как:

T∑заявл - длительность функционирования многоместного сумматора предлагаемого СУЛВ,

T∑заявл=ΔτЛЭ4dlog22n-k=ΔτЛЭ4d(n-k), где k - количество булевых переменных разложения,

TMS - длительность функционирования мультиплексора,

TMS=ΔτЛЭ(k+log2(k+1)).

Из (11) и (12) видно, что общей и у прототипа, и у предлагаемого СУЛВ является сумма длительностей Tк+Tбк=Tк,бк. Длительность функционирования предлагаемого устройства отличается от длительности функционирования прототипа уменьшенной длительностью функционирования T∑заявл сумматора 5. При допущении, что коммутатор 1 конструктивно представляет схему последовательно соединенных мультиплексора и демультиплексора, а блок 2 конъюнкций построен по принципу, представленному на фиг.2, коэффициент выигрыша в уменьшении длительности вычислений предлагаемого СУЛВ по отношению к прототипу с учетом длительности функционирования TMS мультиплексора будет определяться выражением:

Например, при значениях: d=10, n=16, k=1 минимальный выигрыш в уменьшении длительности вычислений предлагаемого СУЛВ по отношению к прототипу составит 6 процентов, при значениях: d=10, n=16, k=4 выигрыш составит 24 процента, при значениях: d=10, n=16, k=8 выигрыш составит 48 процентов. Получаемый выигрыш достигается за счет обеспечения замены вычисления всей СБФ вычислением только одной системы подфункций, выбранной из состава разложения.

Похожие патенты RU2373564C2

название год авторы номер документа
АРИФМЕТИЧЕСКИЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ 2011
  • Вишневский Артем Константинович
  • Диченко Сергей Александрович
  • Крупенин Александр Владимирович
  • Нефедов Павел Владимирович
  • Ржевский Дмитрий Александрович
  • Самойленко Дмитрий Владимирович
  • Финько Олег Анатолиевич
  • Щербаков Андрей Викторович
RU2461868C1
САМОПРОВЕРЯЕМЫЙ МОДУЛЯРНЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ ЛОГИЧЕСКИХ ФУНКЦИЙ 2009
  • Сульгин Сергей Михайлович
  • Финько Олег Анатольевич
  • Щербаков Андрей Викторович
  • Самойленко Дмитрий Владимирович
  • Шарай Вячеслав Александрович
RU2417405C2
МОДУЛЯРНЫЙ ПОЛИНОМИАЛЬНЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ 2015
  • Вишневский Артем Константинович
  • Михеев Николай Александрович
  • Митропов Виктор Викторович
RU2586575C1
Логический вычислитель в системе остаточных классов 2016
  • Вишневский Артем Константинович
  • Мельник Валентин Анатольевич
  • Подсвиров Виталий Алексеевич
RU2637488C1
ПОЛИНОМИАЛЬНЫЙ МОДУЛЯРНЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ С ОБНАРУЖЕНИЕМ ОШИБОК 2015
  • Вишневский Артем Константинович
  • Михеев Николай Александрович
  • Жданов Сергей Георгиевич
RU2586574C1
САМОПРОВЕРЯЕМЫЙ СПЕЦИАЛИЗИРОВАННЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ 2012
  • Диченко Сергей Александрович
  • Вишневский Артем Константинович
  • Финько Олег Анатольевич
RU2485575C1
САМОПРОВЕРЯЕМЫЙ СПЕЦИАЛИЗИРОВАННЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ 2015
  • Диченко Сергей Александрович
  • Крупенин Александр Владимирович
  • Финько Олег Анатолиевич
  • Самойленко Дмитрий Владимирович
  • Чечин Иван Владимирович
  • Меретуков Клим Сергеевич
  • Самус Владимир Михайлович
RU2579991C1
Устройство решения систем логических уравнений 2017
  • Вишневский Артем Константинович
  • Батяй Андрей Николаевич
RU2654137C1
ОТКАЗОУСТОЙЧИВЫЙ СПЕЦИАЛИЗИРОВАННЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ 2018
  • Диченко Сергей Александрович
  • Кись Сергей Андреевич
  • Самойленко Дмитрий Владимирович
  • Соколовский Сергей Петрович
  • Финько Олег Анатольевич
RU2680035C1
Устройство для моделирования конечных автоматов 1980
  • Плахтеев Анатолий Павлович
  • Харченко Вячеслав Сергеевич
  • Тимонькин Григорий Николаевич
  • Приходько Владимир Моисеевич
  • Ткаченко Сергей Николаевич
SU955080A1

Иллюстрации к изобретению RU 2 373 564 C2

Реферат патента 2009 года МОДУЛЯРНЫЙ ВЫЧИСЛИТЕЛЬ СИСТЕМ БУЛЕВЫХ ФУНКЦИЙ

Изобретение относится к вычислительной технике и может быть использовано как специализированный вычислитель систем булевых функций. Техническим результатом является уменьшение длительности вычислений. Поставленная цель достигнута за счет обеспечения вычисления не всей системы булевых функций, представленной в модулярной числовой нормальной форме, а лишь одной системы подфункций, представленной в модулярной числовой нормальной форме, полученной в результате примененного к системе булевых функций разложения. Устройство содержит коммутатор, блок конъюнкций, 2k блоков памяти, где k - количество булевых переменных разложения,

2n-k мультиплексоров, сумматор. 2 ил.

Формула изобретения RU 2 373 564 C2

Устройство для вычисления булевых функций, содержащее коммутатор, входы которого являются входами устройства для подачи n булевых переменных, предназначенный для выделения переменных разложения системы булевых функций, блок конъюнкций, выходы которого подключены к первому блоку памяти, многовходовый сумматор, выходы которого являются выходами устройства выдачи значений булевых функций, отличающееся тем, что дополнительно введены 2k-1 блоков памяти, где k - количество булевых переменных разложения, при этом 2k блоков памяти предназначены для хранения 2k групп коэффициентов модулярных числовых нормальных форм, полученных в результате заранее выполненного разложения системы булевых функций, 2n-k мультиплексоров, при этом с (k+1)-го по n-ый выходы коммутатора подключены к входам блока конъюнкций, выходы которого подключены к входам со второго по 2k-ый блоков памяти соответственно, первые (n-k)-ые выходы блоков памяти подключены к информационным входам соответственно первого 2n-k-ого мультиплексора, выходы мультиплексоров, на которые поступают значения коэффициентов одной из подсистем булевых функций, представленной в модулярной числовой нормальной форме, в соответствии со значениями булевых переменных, определяющих параметр разложения, подключены к входам многовходового сумматора, с первого по k-ый адресные входы мультиплексоров соединены соответственно с первого по k-ый выходами коммутатора, на которых формируются значения булевых переменных, определяющие параметр разложения.

Документы, цитированные в отчете о поиске Патент 2009 года RU2373564C2

МАЛЮГИН В.Д
Параллельные логические вычисления посредством арифметических полиномов
- М.: Наука, Физматлит, 1997, с.154-155
УСТРОЙСТВО ВЫПОЛНЕНИЯ ЛОГИЧЕСКИХ ОПЕРАЦИЙ 2005
  • Кобелев Николай Сергеевич
  • Лопин Вячеслав Николаевич
  • Кобелев Владимир Николаевич
  • Шевелева Елена Сергеевна
  • Фетисова Евгения Владимировна
  • Шевелев Сергей Степанович
RU2288500C1
МНОГОФУНКЦИОНАЛЬНЫЙ ЛОГИЧЕСКИЙ МОДУЛЬ 1990
  • Поддубный В.Н.
RU2018922C1
Блок вычисления логических функций 1990
  • Новиков Владимир Иванович
  • Мельников Вячеслав Кондратьевич
  • Зарембовская Ирина Артуровна
  • Фадеева Елена Павловна
SU1800465A1
US 6070182 A, 30.05.2000
JP 8007083 A, 12.01.1996.

RU 2 373 564 C2

Авторы

Щербаков Андрей Викторович

Финько Олег Анатольевич

Сульгин Сергей Михайлович

Зимонин Дмитрий Викторович

Карасев Константин Сергеевич

Винокуров Николай Александрович

Даты

2009-11-20Публикация

2007-11-06Подача