four single neuron arithmetic circuits based astrocyte s · c. circuito neuronal multiplicador la...

8
Abstract—For the past ten years a new emerging branch of com- puter science is making unprecedented efforts to create arithmetic circuits based on a new class of parallel computing in order to improve the area consumption and speed processing of the existing binary circuits. Inspired by the neural processing of the soma and transmission of the information between neurons, a new class of neural computing models (spiking neural P systems) has been proposed. Most of the current neural arithmetic circuits perform addition, subtraction, multiplication, division and logic gates expending several neurons and synapses per each circuit with complex rules. In this work, we propose four single neuron arithmetic circuits to create compact circuits. Taking ideas from various neurobiological phenomena such as dendritic delays, dendritic feedback, astrocyte-like control and dendritic growth, we have designed these circuits with simple and homogenous rules and the connectivity of each neuron requires few numbers of synapses. In addition, the proposed neural circuits have been integrated in a single, configurable, multi-circuit processor. This processor was implemented in a Stratix V GX FPGA and our results evidence that it requires minimal area resources, which potentially allow the construction of systems that require a large number of arithmetic circuits, operating in parallel, such as portable applications such as mobile robots, mobile devices, vision and image processing, among others. Index Terms—Arithmetic circuits, Dendritic delays, Dendritic feedback, Astrocyte-like control, SN P systems, FPGA I. INTRODUCCIÓN n el año 2006, surgió una nueva rama de la ciencia computacional, basada en el cómputo de membrana y las redes neuronales de impulsos eléctricos (en inglés: spiking neural networks) [1]. Estos modelos de cómputo son denominados sistemas neuronales de impulsos eléctricos tipo P, los cuales modelan la forma de comunicación entre neuronas mediante impulsos eléctricos y el procesamiento neuronal del soma. _______________________________ T. Frías, Instituto Politécnico Nacional, México, [email protected] C. Díaz, Instituto Politécnico Nacional, México, [email protected] G. Sánchez, Instituto Politécnico Nacional, México, [email protected] G. García, Instituto Politécnico Nacional, México, [email protected] J.G. Avalos, Instituto Politécnico Nacional, México, [email protected] H. Pérez, Instituto Politécnico Nacional, México, [email protected] Corresponding author: Giovanny Sánchez Los impulsos eléctricos son procesados por el soma por medio de dos reglas de impulsos eléctricos (olvido y disparo). La regla de disparo está definida como: E/a c a p : d, donde a es una expresión regular bajo E. Los números naturales se representan con los símbolos c, p, d, d 0, c 1, p 1. En el caso de que una neurona contenga k impulsos eléctricos de entrada, donde a k Ɛ L(E) y k c, entonces consumirá c impulsos eléctricos y producirá p impulsos eléctricos de salida después de un retardo d. Finalmente, la regla de olvido está definida de la siguiente forma: a s λ lo que implica que si s 1, s impulsos eléctricos se eliminan del soma de la neurona. Recientemente, varios autores han propuesto diversas variantes de los sistemas neuronales tipo P tomando ideas de diversos fenómenos neurobiológicos tales como son: umbrales variables [2], reglas en las sinapsis [3], plasticidad en la sinapsis y auto- organización [4], retardos en las dendritas [5], control por medio de astrocitos [6], anti-spikes [7], entre otros. La inclusión de estos sistemas neuronales tipo P en los sistemas informáticos actuales permitiría resolver problemas en el campo de la ingeniería y en el campo científico como son: razonamiento para el diagnóstico de fallos [8] y modelos de unidades centrales de procesamiento [9]. En particular, científicos computacionales han creado circuitos aritméticos y lógicos básicos tales como: sumadores, restadores, multiplicadores, divisores y compuertas lógicas [5, 6, 10], con el objetivo de crear una Unidad Aritmética Lógica basada en redes neuronales tipo P. Sin embargo, muchos de ellos no han sido implementados en hardware debido a que requieren un gran número de conexiones sinápticas y complejos núcleos de procesamiento para emular este tipo de red neuronal. En este trabajo se proponen cuatro circuitos aritméticos (sumador, restador, multiplicador y divisor), donde cada circuito está estructurado por una neurona. Además se propone un procesador compacto y configurable para emular los cuatro circuitos aritméticos neuronales cambiando la conectividad del procesador de manera dinámica. Los circuitos propuestos se diseñaron e implementaron considerando dos puntos clave con el fin de construir circuitos aritméticos compactos. El primer punto hace referencia al uso de conectividad y reglas de operación simples y el segundo punto está ligado a la implementación eficiente de los circuitos aritméticos en Four Single Neuron Arithmetic Circuits Based on SN P Systems with Dendritic Behavior, Astrocyte-like Control and Rules on the Synapses T. Frías, C. Díaz, G. Sánchez, G. García, J. G. Avalos and H. Pérez, Senior Member, IEEE E 38 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018

Upload: vukhuong

Post on 25-Jan-2019

218 views

Category:

Documents


1 download

TRANSCRIPT

Abstract—For the past ten years a new emerging branch of com- puter science is making unprecedented efforts to create arithmetic circuits based on a new class of parallel computing in order to improve the area consumption and speed processing of the existing binary circuits. Inspired by the neural processing of the soma and transmission of the information between neurons, a new class of neural computing models (spiking neural P systems) has been proposed. Most of the current neural arithmetic circuits perform addition, subtraction, multiplication, division and logic gates expending several neurons and synapses per each circuit with complex rules. In this work, we propose four single neuron arithmetic circuits to create compact circuits. Taking ideas from various neurobiological phenomena such as dendritic delays, dendritic feedback, astrocyte-like control and dendritic growth, we have designed these circuits with simple and homogenous rules and the connectivity of each neuron requires few numbers of synapses. In addition, the proposed neural circuits have been integrated in a single, configurable, multi-circuit processor. This processor was implemented in a Stratix V GX FPGA and our results evidence that it requires minimal area resources, which potentially allow the construction of systems that require a large number of arithmetic circuits, operating in parallel, such as portable applications such as mobile robots, mobile devices, vision and image processing, among others.

Index Terms—Arithmetic circuits, Dendritic delays, Dendritic feedback, Astrocyte-like control, SN P systems, FPGA

I. INTRODUCCIÓN n el año 2006, surgió una nueva rama de la ciencia computacional, basada en el cómputo de membrana y las

redes neuronales de impulsos eléctricos (en inglés: spiking neural networks) [1]. Estos modelos de cómputo son denominados sistemas neuronales de impulsos eléctricos tipo P, los cuales modelan la forma de comunicación entre neuronas mediante impulsos eléctricos y el procesamiento neuronal del soma. _______________________________ T. Frías, Instituto Politécnico Nacional, México, [email protected] C. Díaz, Instituto Politécnico Nacional, México, [email protected] G. Sánchez, Instituto Politécnico Nacional, México, [email protected] G. García, Instituto Politécnico Nacional, México, [email protected] J.G. Avalos, Instituto Politécnico Nacional, México, [email protected] H. Pérez, Instituto Politécnico Nacional, México, [email protected]

Corresponding author: Giovanny Sánchez

Los impulsos eléctricos son procesados por el soma por medio de dos reglas de impulsos eléctricos (olvido y disparo). La regla de disparo está definida como: E/ac → ap: d, donde a es una expresión regular bajo E. Los números naturales se representan con los símbolos c, p, d, d ≥ 0, c ≥ 1, p ≥ 1. En el caso de que una neurona contenga k impulsos eléctricos de entrada, donde ak Ɛ L(E) y k ≥ c, entonces consumirá c impulsos eléctricos y producirá p impulsos eléctricos de salida después de un retardo d. Finalmente, la regla de olvido está definida de la siguiente forma: as → λ lo que implica que si s ≥ 1, s impulsos eléctricos se eliminan del soma de la neurona. Recientemente, varios autores han propuesto diversas variantes de los sistemas neuronales tipo P tomando ideas de diversos fenómenos neurobiológicos tales como son: umbrales variables [2], reglas en las sinapsis [3], plasticidad en la sinapsis y auto-organización [4], retardos en las dendritas [5], control por medio de astrocitos [6], anti-spikes [7], entre otros. La inclusión de estos sistemas neuronales tipo P en los sistemas informáticos actuales permitiría resolver problemas en el campo de la ingeniería y en el campo científico como son: razonamiento para el diagnóstico de fallos [8] y modelos de unidades centrales de procesamiento [9]. En particular, científicos computacionales han creado circuitos aritméticos y lógicos básicos tales como: sumadores, restadores, multiplicadores, divisores y compuertas lógicas [5, 6, 10], con el objetivo de crear una Unidad Aritmética Lógica basada en redes neuronales tipo P. Sin embargo, muchos de ellos no han sido implementados en hardware debido a que requieren un gran número de conexiones sinápticas y complejos núcleos de procesamiento para emular este tipo de red neuronal. En este trabajo se proponen cuatro circuitos aritméticos (sumador, restador, multiplicador y divisor), donde cada circuito está estructurado por una neurona. Además se propone un procesador compacto y configurable para emular los cuatro circuitos aritméticos neuronales cambiando la conectividad del procesador de manera dinámica. Los circuitos propuestos se diseñaron e implementaron considerando dos puntos clave con el fin de construir circuitos aritméticos compactos. El primer punto hace referencia al uso de conectividad y reglas de operación simples y el segundo punto está ligado a la implementación eficiente de los circuitos aritméticos en

Four Single Neuron Arithmetic Circuits Based on SN P Systems with Dendritic Behavior, Astrocyte-like Control and Rules on the

Synapses T. Frías, C. Díaz, G. Sánchez, G. García, J. G. Avalos and H. Pérez, Senior Member, IEEE

E

38 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018

hardware digital, por lo que, un único procesador pueda realizar las cuatro operaciones sin necesidad de crear un circuito lógico dedicado a cada operación aritmética, tal como se implementarían los sistemas aritméticos binarios.

II. CIRCUITOS ARITMÉTICOS NEURONALES Los circuitos neuronales propuestos realizan la resta, suma,

multiplicación y división de dos números enteros (n1 y n2) de manera serial y con codificación unaria, es decir, los dos números (n1, n2) a procesar se convierten en su equivalente en trenes de impulsos eléctricos, por ejemplo: el número n1= 5 = “11111” y el número n2 = 3 = “111”. Además, cada circuito aritmético neuronal incluye diferentes comportamientos neuronales: crecimiento dendrítico, retardos dendríticos, conexiones dendríticas de retroalimentación, reglas en las sinapsis y control por medio de astrocitos. La inserción de estos mecanismos en el esquema global de los circuitos aritméticos neuronales permite optimizar el consumo de neuronas y sinapsis por cada circuito. En los siguientes párrafos explicaremos estos conceptos biológicos junto con el funcionamiento de cada circuito aritmético neuronal.

A. Circuito neuronal sumador La Fig. 1 muestra el circuito SN P sumador Π!, el cual

consta de una neurona !! con dos entradas !"! y !"!. El circuito propuesto incorpora dos comportamientos dendríticos al modelo convencional SN P, el crecimiento de las dendritas y los retardos dendríticos. Como se observa en la Fig. 1, la segunda entrada de la neurona !! tiene un retardo dendrítico, el cual imita el comportamiento natural de las dendritas [11]. Puesto que las dendritas juegan un papel vital en la sincronización de impulsos que llegan al soma para evitar la pérdida de la información.

Figura 1. Circuito neuronal para realizar la operación de suma.

El circuito Π!, suma dos enteros positivos m y n, con codificación unaria de acuerdo a la siguiente descripción:

En el estado inicial, la neurona !! se encuentra sin información, es decir, el soma no contiene impulsos eléctricos. En el momento t=1 cuando el primer impulso se envía por !"!, este arriba directamente al soma, y con base en la regla de disparo, la neurona disparará un impulso de forma instantánea. Por otro lado, cuando el primer impulso pasa a través !"!, este será retrasado en la dendrita !!!"# debido al crecimiento dendrítico de esta conexión. Por lo tanto, a cada momento que un impulso llega al soma a través de !"! se traducirá en el crecimiento de !"!, lo cual provocará el retraso de cada impulso que llegue por !"!. En el momento t=m+1, los m impulsos que entran por !"! habrán sido disparados por el soma, mientras tanto los n impulsos retrasados en !"!

comenzarán a arribar y ser disparados por el soma. De esta forma, el total de impulsos que entran, serán computados por el soma lo que representa la adición aritmética de ambos números.

B. Circuito neuronal restador

El circuito restador Π! adopta el comportamiento de los astrocitos en su funcionamiento para controlar los impulsos de entrada de la neurona !!, como se muestra en la Fig. 2. Puesto que, los astrocitos son elementos vitales en el proceso de transmisión de impulsos eléctricos en el sistema nervioso, es decir, regulan la transmisión de los impulsos eléctricos entre las neuronas [12]. El control que ejerce el astrocito en esta propuesta es inhibitorio, es decir, cuando la cantidad de impulsos que pasan a través de las dendritas es igual a dos, el astrocito inhibirá ambos impulsos eléctricos, es decir, el astrocito solo permitirá la circulación de un solo impulso a través de cualquiera de las dendritas. Por lo tanto, la inclusión del astrocito en el sistema SN P permite calcular el valor absoluto de la resta de dos números enteros positivos.

Figura 2. Circuito neuronal para realizar la operación de resta.

El circuito Π!, obtiene el valor absoluto de la diferencia de dos números enteros positivos m, n, con codificación unaria, de la siguiente forma:

En el estado inicial del circuito, la neurona !! no contiene ningún impulso. En el momento t=1, si dos impulsos, que son la forma unaria de las cantidades m y n, llegan por !"! y !"!, estos serán inhibidos.

Para el caso que m>n, en el momento t=n, el astrocito habrá inhibido todos los impulsos eléctricos que lleguen a la neurona !! de manera simultánea a través de sus dos dendritas, esto implica que la neurona !! no ha disparado ningún impulso eléctrico. Una vez que los impulsos que componen el valor de n se agoten, el soma comenzará a recibir los m-n impulsos eléctricos que le restan de la cantidad m, los cuales serán disparados. Este número restante de impulsos eléctricos representan el valor absoluto de la cantidad resultante. Para el caso que m<n, el circuito presentará un comportamiento similar. Por otro lado, cuando m=n, el astrocito inhibirá todos los impulsos evitando que el soma de la neurona !! intervenga en la operación, dando como resultado 0 impulsos eléctricos a la salida.

C. Circuito neuronal multiplicador La Fig. 3 muestra el circuito SN P multiplicador Π!. El

circuito incluye dos comportamientos dendríticos [11], el primero hace referencia al crecimiento dendrítico y el segundo comportamiento es denominado como retroalimentación

FRIAS et al.: FOUR SINGLE NEURON ARITHMETIC 39

dendrítica. Los autores mencionan que existe un fenómeno en el cual algunos impulsos eléctricos disparados por el soma tienden a regresar, por lo que dicho fenómeno tiene grandes implicaciones en la plasticidad sináptica.

El circuito SN P Π!, calcula el producto de dos números enteros positivos de acuerdo a la siguiente descripción:

Inicialmente el sistema no posee ningún impulso y el retardo Δt!"#!, no existe. En el momento t=1, las entradas !"! y !"! proveen de dos impulsos a la neurona !!. Después de recibir dos impulsos y de acuerdo a su regla de disparo,!! = !! → !, la neurona !! dispara un impulso, el cual es enviado a tres distintos destinos. El primero a la salida del sistema, que representa el resultado aritmético de la operación. Debido a la acción de retroalimentación, el segundo destino es al soma mismo y el tercero es dirigido al retardo Δt!"#!.

Figura 3. Circuito neuronal para realizar la operación de multiplicación.

La excitación producida por los impulsos que llegan del segundo impulso que viaja por !"! y la propia retroalimentación de la neurona, provocan un segundo impulso disparado por el soma; mientras esto sucede, la dendrita !"! sufre un crecimiento, que conlleva al retraso del segundo y los subsecuentes impulsos que viajan por esa dendrita. Esta dendrita, a diferencia de Δt!"#!, tiene un crecimiento dinámico, i.e. cada impulso que llega por Δt!"#! provoca que la dendrita crezca en una razón m, por lo tanto, el crecimiento máximo que tendrá la dendrita será !×!.

En el momento que los impulsos provenientes de !"! se agotan, el segundo impulso, retrasado por Δt!"#!, que llega a través de !"! será liberado al soma, junto con el impulso que proviene de Δt!"#!, cuando estos dos impulsos arriban, el soma vuelve a hacer su ciclo de disparos, hasta que los impulsos en Δt!"#!, se hayan agotado.

Este proceso se repite tantos ciclos como impulso dilatados se encuentren en Δt!"#!. Cuando los impulsos en Δt!"#! se encuentren agotados, en el tiempo ! = !×!, el último ciclo de iteración habrá iniciado. Tras finalizar éste ciclo, el resultado aritmético de la operación estará completo, y los únicos impulsos existentes estarán alojados en Δt!"#!, los cuales serán inhibidos por soma, según la regla ! → !.

D. Circuito neuronal divisor La Fig. 4 muestra el circuito SN P divisor Π!, el cual basa

su comportamiento en un modelo SN P propuesto en [3]. Esta variante plantea que el soma se utilice como un contenedor, y que las reglas de disparo se encuentren alojadas en las dendritas. Este modelo representó una ventaja para crear el circuito divisor con una neurona y dos salidas con el fin de especificar el cociente y el residuo, respectivamente. Como se

muestra en la Fig. 4, el circuito solo presenta una entrada. Esto se debe a que la división tiene embebido el divisor en las reglas, i.e. solo puede dividir entre un factor previamente establecido.

El circuito SN P Π!, calcula la división de dos números naturales ! ÷ !, con un factor fijo !, dando como resultado un cociente ! y un residuo !, de acuerdo a la siguiente descripción:

En el momento inicial la neurona no posee información alguna, es decir, el soma de la neurona !! no contiene ningún impulso eléctrico. Cuando el primer impulso arriba al soma este actuará como un contenedor, por lo que no saldrá ningún impulso por ninguna dendrita de salida (salc o salr) hasta que se cumpla cualquier de las reglas de disparo de cualquiera de las dendritas de salida (salc o salr), es decir, el disparo de salida se generará cuando el contenido de los impulsos eléctricos en el soma llegue a n impulsos, en ese momento un impulso será disparado a través de !"#!. El ciclo descrito anteriormente sucederá durante (! − !) ÷ !. Cuando ya no existan más impulsos que cumplan la regla !! + → !, solo quedarán los impulsos que componen al valor de residuo r, los cuales serán disparados a través de !"#! después del momento t=m.

Figura 4. Circuito neuronal para realizar la operación de división.

III. IMPLEMENTACIÓN DE LOS CIRCUITOS NEURONALES EN DISPOSITIVOS FPGA

Los cuatro circuitos aritméticos neuronales propuestos (sumador, restador, multiplicador y divisor) son emulados por medio de un procesador configurable, el cual se implementó en la tarjeta de desarrollo Stratix V GX FPGA (5SGXEA7N2F45C2). El diseño del procesador configurable se realizó mediante el uso de módulos digitales convencionales para validar sus prestaciones en términos de área y velocidad de procesamiento. La Fig. 5 (ver Apéndice) muestra el esquema del procesador configurable, el cual realiza el cómputo de cualquiera de las operaciones aritméticas mencionadas anteriormente mediante la habilitación de un código de operación de dos bits, por lo cual se tienen cuatro posibles combinaciones (“00” → sumador, “01” → restador, “10” → multiplicador y “11” → divisor).

El procesador está compuesto básicamente de: • Un codificador de impulsos eléctricos (decimal/unario).

Este módulo convierte los números decimales en sus equivalentes impulsos eléctricos. En el esquema binario, un 1 lógico se interpreta como un impulso eléctrico.

• Un sumador de 4 bits. El sumador imita el comportamiento del soma, por lo que solo sirve como contenedor de los impulsos eléctricos.

40 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018

• Un comparador de 4 bits. Este elemento es configurado para llevar acabo la verificación de las reglas de disparo o las de olvido.

• Un codificador de impulsos eléctricos (unario/decimal). Este módulo convierte los impulsos eléctricos, los cuales fueron generados por el procesador, en números decimales.

• Un conjunto de multiplexores. Estos elementos son clave para que el procesador funcione ya sea como sumador o restador o multiplicador o divisor. Este mecanismo permite la configuración dinámica de la conectividad de las neuronas.

A. Circuito neuronal sumador La Fig. 6 (ver Apéndice) muestra el diagrama de las

señales digitales que se obtuvieron mediante la simulación del procesador en modo sumador, para el cómputo dos números arbitrarios, en el entorno de desarrollo Modelsim, el cual está embebido en el programa Quartus II de Altera. Para que el procesador realice la operación de suma, el usuario debe habilitar el código de operación “00”, un pulso de borrado (señal “reset”) para inicializar el procesador, así mismo debe habilitar en formato decimal los números (señales “d1” y “d2”) y el habilitador global del procesador (señal “enable”). Como se observa en la Fig. 6 (ver Apéndice), el procesador realiza la operación de suma de dos dígitos arbitrarios d1 = 5 y d2 = 9. El modulo codificador de impulsos eléctricos (decimal/unario) genera dos trenes de pulsos (u1 y u2), los cuales corresponden a los dígitos d1 y d2. El tren de pulsos del digito 2 es alimentado a un registro de corrimiento para imitar el comportamiento de retardo dendrítico Δtmax1, cuyo valor depende del valor del digito d1. Cada vez que la suma de estos dos dígitos tenga como resultado el valor de uno, entonces el comparador generará un pulso. Este pulso es procesado por el módulo codificador de impulsos eléctricos (unario/decimal) para producir el resultado en sistema decimal (9+5=14).

B. Circuito neuronal restador El procesador realiza la operación de resta de dos números

arbitrarios d1 = 1 y d2 = 9 mediante la habilitación del código de operación “01”, tal como se muestra en la Fig. 7 (ver Apéndice). En este circuito el comportamiento del astrocito se modelo mediante una compuerta lógica XOR (ver Fig. 5). La operación XOR de dos bits es igual a 1 en caso de que cualquiera de ellos valga 1 y el otro 0 y el valor de la salida de la compuerta lógica es 0 cuando ambos bits son 0 o 1. Por lo tanto, este circuito es simple y cada vez que la suma de los dos números sea un 1, el comparador generará un pulso.

C. Circuito neuronal multiplicador La multiplicación de dos números se realiza mediante la

habilitación del código de operación “10”. En este modo de operación del procesador, la conexión dendrítica y el retardo dendrítico se habilitan mediante el uso de una conexión de retroalimentación y un registro de corrimiento, respectivamente. Como se observa en la Fig. 5 (ver Apéndice), el registro de corrimiento Δtmax2 imita un retardo dendrítico. En general, el valor del registro está en función del valor del

multiplicador d1 = 3. En particular, solo para la implementación de este circuito en el procesador, se require que los impulsos eléctricos estén separados un ciclo de reloj para tener una mejor visualización (ver u1 y u2). La Fig. 8 (ver Apéndice) muestra la simulación de la operación de la multiplicación de dos números arbitrarios d1 = 3 y d2 = 2 teniendo una separación entre los impulsos de un ciclo de reloj.

D. Circuito neuronal divisor El usuario habilita el modo de división activando el código

“11”. En este modo el segundo comparador también se hablita para generar el valor del residuo. La Fig. 9 (ver Apéndice) muestra el diagrama temporal de las señales digitales que se generan realizando la división de dos números arbitrarios d1 = 5 y d2 = 2. Como se observa en el diagrama, cada vez que el comparador1 genera un pulso, el sumador se reinicia a 0. En esta configuración, el valor del comparador es igual al valor de d2, por lo que cada vez que el resultado de la suma de los pulsos de entrada sea igual al valor del comparador, este generará un pulso. El residuo se obtiene cuando el módulo codificador de impulsos eléctricos (decimal/unario) envía el ultimo pulso, el cual corresponde al tren de pulsos del número d1, al sumador y al codificador de impulsos eléctricos (unario / decimal). En este momento, el codificador de impulsos eléctricos (unario / decimal) genera el valor del cociente y del residuo.

En conclusión, el procesador fue diseñado para soportar las cuatro configuraciones consumiendo 605 LUTs y 210 registros. En su contraparte, los circuitos convencionales binarios necesitan de un circuito hardware dedicado a cada una de las operaciones aritméticas anteriormente señaladas. Debido a su bajo consumo de área, este procesador puede ser base de un sistema escalable-paralelo, con el fin de procesar números grandes y garantizar la velocidad de procesamiento. La tarjeta Altera contiene 1,877,760 LUTs y 938,880 registros, por lo que, si utilizáramos el 80% de recursos de hardware, considerando que el mayor consumo está dado por el número de LUTs, se podrían implementar hasta 2500 procesadores.

IV. TRABAJOS PREVIOS

Como se ha mencionado anteriormente, pocas propuestas abordan dos aspectos fundamentales para la construcción eficiente de una Unidad Aritmética en términos de consumo de área y velocidad de procesamiento. El primer aspecto está relacionado con el diseño de circuitos que utilicen un número reducido de neuronas y sinapsis y el segundo se refiere al bajo coste computacional en el procesado de las reglas de disparo u olvido de cada neurona. Esto se refleja en un menor consumo de área y una mayor velocidad de procesamiento, respectivamente. A continuación se describirán los circuitos aritméticos que se han propuesto hasta la fecha.

A. Sumadores El primer circuito sumador basado en un sistema SN P fue

propuesto por Gutiérrez-Naranjo y Leporati [9]. Dicho modelo está compuesto de tres neuronas y utiliza un mecanismo de codificación binario, el cual es más parecido al proceso de

FRIAS et al.: FOUR SINGLE NEURON ARITHMETIC 41

TABLA I CIRCUITOS SUMADORES

Autor Numero de Neuronas Numero de Sinapsis

Este trabajo 1 2 Gutiérrez y Leporati [9]. 3 5 Zeng et al. [13]. 10 19

Peng et al. [14]. 7 13 Liu et al. [10]. 2 5

codificación de los circuitos eléctricos actuales, sin embargo, los sistemas SN P utilizan una codificación unaria.

En [10], Liu et al. propusieron un modelo que puede omitir de manera aleatoria las reglas de disparo u olvido, es decir, el sistema opera de manera independiente y por lo tanto, puede ignorar los valores asociados a sus reglas. A través de este método el circuito se puede reducir hasta dos neuronas.

Zeng et al. presentaron en [13] un circuito en el que la codificación se basa en intervalos de tiempo entre dos impulsos eléctricos. En esta propuesta el circuito está compuesto de diez neuronas y sinapsis sin peso.

Otra propuesta de circuito sumador fue presentada por Peng et al. en [14]. Este modelo puede realizar operaciones con números positivos y negativos, sin embargo, la señal de entrada también es expresada en formato binario. El circuito consta de siete neuronas y trece sinapsis.

B. Restadores El primer circuito restador fue propuesto por Gutiérrez-

Naranjo y Leporati [9]. De igual manera que su circuito sumador, la codificación se realiza mediante el método binario y utiliza diez neuronas.

Liu et al. propusieron un circuito restador de dos neuronas, utilizando el método que omite las reglas de disparo u olvido de manera aleatoria. Para realizar la operación de resta en este sistema, es necesario codificar las unidades usando una cadena de siete impulsos eléctricos [10].

El circuito restador de Zeng et al. fue el primero que se realizó usando la codificación unaria. El circuito está compuesto por doce neuronas [13].

Peng et al. utilizaron la estructura de su circuito sumador, por lo tanto, este circuito suma un numero positivo y un número negativo. Por esta razón, el número de neuronas usadas en el circuito es el mismo que en su circuito sumador [14].

C. Divisores

El primer circuito divisor fue propuesto por Zeng et al., dicho circuito realiza la división de dos números arbitrarios. El sistema consta de 31 neuronas y la codificación de los números se realiza mediante codificación unaria [13].

El circuito divisor propuesto por Liu et al. consta de tres etapas y es necesario codificar las unidades usando una cadena de siete impulsos, para cumplir con las reglas de tiempo de

ejecución que los autores proponen. El circuito cuenta con 10 neuronas [10].

Yurong et al. propusieron un circuito que también puede resolver la división de dos números arbitrarios con codificación binaria. El sistema propuesto consta de tres módulos, en donde el número de neuronas contenidas en el módulo 2 varía dependiendo del número de bits m del divisor y el dividendo, de esta manera el circuito puede estar compuesto desde 12 neuronas hasta n-número de neuronas [15].

D. Multiplicadores Gutiérrez-Naranjo y Leporati presentaron un circuito, en el

cual el valor del multiplicador se tiene que pre-definir en su

estructura. De esta manera, el multiplicador indica el número de veces que se tiene que sumar el valor del multiplicando para obtener el resultado. Por tal motivo, el circuito realiza la multiplicación de cualquier multiplicando por el valor fijo del multiplicador. Debido a esto, el número de neuronas utilizadas varía dependiendo del factor multiplicador que se utiliza [9].

Zeng et al. presentaron un circuito con codificación unaria que realiza la multiplicación de dos números naturales arbitrarios utilizando 26 neuronas [13].

El circuito multiplicador de Peng et al. también puede realizar la multiplicación de dos números arbitrarios, sin embargo, la codificación es binaria y el número de neuronas y sinapsis aumenta con respecto al tamaño de los números (multiplicando y multiplicador) [14].

Liu et al. presentaron un multiplicador usando sistemas SN P libres de tiempo de ejecución. Por medio de este método logran reducir el número de neuronas utilizadas hasta once [10].

V. DISCUSIÓN Hemos estudiado a fondo los circuitos aritméticos que se han propuesto hasta la fecha, los cuales están basados en sistemas

neuronales tipo P. Las tablas I, II, III, IV muestran la comparación entre los circuitos aritméticos existentes y los circuitos neuronales propuestos en términos de número de neuronas y numero de sinapsis. Esta comparación se limitó a los factores anteriormente mencionados debido a que ninguno de ellos se ha implementado en hardware para validar su consumo de hardware y su velocidad de procesamiento. A pesar de esto, se intentó diseñarlos con sistemas digitales e implementarlos en dispositivos reconfigurables FPGA (del

TABLA III CIRCUITOS DIVISORES

Autor Numero de Neuronas Numero de Sinapsis

Este trabajo 1 3 Zeng et al. [13]. 31 50 Liu et al. [10]. 10 16

Yurong et al. [15]. ~ 6 + 6·m ~ 8 + 11·m

TABLA IV CIRCUITOS MULTIPLICADORES

Autor Numero de Neuronas Numero de Sinapsis

Este trabajo 1 4 Gutiérrez y Leporati [9]. 13 15 Zeng et al. [13]. 26 38

Peng et al. [14]. 30 47 Liu et al. [10]. 11 18

TABLA II CIRCUITOS RESTADORES

Autor Numero de Neuronas Numero de Sinapsis

Este trabajo 1 2 Gutiérrez y Leporati [9]. 10 15 Zeng et al. [13]. 12 21

Peng et al. [14]. 7 13 Liu et al. [10]. 2 4

42 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018

inglés: field programable gate array), con el fin de hacer una comparación coherente entre nuestra propuesta y los circuitos aritméticos neuronales existentes, en términos de velocidad de procesamiento y consumo de área. Varios factores vitales impidieron la implementación de estos circuitos en hardware. Estos factores son: 1. Reglas de disparo: Varios autores han decidido que sus

circuitos empleen varias reglas de disparo. Algunas de las reglas indican que los impulsos se procesan o se ignoran por el soma de manera aleatoria o simplemente el soma de la neurona se modela con hasta 7 reglas de disparo u olvido. Esto aumenta de manera significativa el tiempo de procesamiento, puesto que el procesador, el cual simula el procesamiento del soma, tiene que revisar una serie de condiciones para dar una salida correcta. Recientemente, se ha demostrado que las reglas de disparo u olvido tienen una influencia crucial en la potencia computacional de los sistemas neuronales SN P [2], por lo que es conveniente usar reglas de disparo u olvido sencillas como: a → a o a2 → a. La primera regla indica que si la neurona recibe un impulso generará un impulso y la segunda regla señala que la neurona disparará un impulso cada vez que reciba dos impulsos.

2. Transmisión y procesamiento de los datos de manera asíncrona: varios circuitos transmiten y procesan los impulsos de manera asíncrona. Esto conlleva al desarrollo de módulos de transmisión avanzados, de los cuales la mayoría son síncronos, para garantizar la transmisión de los datos de manera correcta.

3. Transmisión de varios impulsos en un solo ciclo de reloj: las neuronas pueden disparar más de un impulso en un ciclo de reloj, esto implica que más de un bit se transmita en un solo bus en un instante de tiempo, lo que es físicamente imposible.

4. Conexión sináptica: este factor hace referencia al número de conexiones entre neuronas. No solo el número de sinapsis es crítico, además la configuración de la conectividad es compleja, lo que representa un consumo excesivo de hardware y por lo tanto, la escalabilidad del sistema se ve disminuida. Este último punto es muy importante en el caso de replicar el módulo para generar varios circuitos, los cuales podrían trabajar en paralelo.

En conclusión, la implementación de los circuitos propuestos podría ser más efectiva en sistemas análogos, debido a su modo de operación asíncrona y consumo de hardware. Tomando en cuenta todos los factores anteriormente señalados, hemos diseñado nuestros circuitos neuronales, con el fin de implementarlos en hardware digital, bajo los siguientes criterios:

1. Reglas de disparo simples y homogéneas. 2. Una sola neurona por circuito. 3. Modo de operación síncrona (procesamiento y

transmisión de impulsos). 4. Solo se genera un impulso en cada ciclo de reloj. 5. Número mínimo de sinapsis.

Evidentemente, el tiempo de procesamiento de nuestros circuitos crece en función del tamaño de los números a sumar, restar, multiplicar o dividir, respectivamente, debido al modo secuencial de procesamiento de cada circuito. Sin embargo el

número de procesadores es el mínimo posible (uno). La tarjeta Stratix V GX podría soportar hasta 1,000 procesadores operando en paralelo, por lo que se podrían construir circuitos aritméticos paralelos, donde una neurona puede ser un módulo básico de la estructura paralela a fin de disminuir el tiempo de procesamiento para el cómputo de números grandes. Estos números se podrían segmentar en unidades, decenas, centenas, etc., por lo que, cada neurona podría procesar números menores a nueve.

VI. CONCLUSIONES

Los méritos de este trabajo son: 1) cuatro circuitos aritméticos neuronales compactos, 2) la alta factibilidad de su implementación en hardware con el mínimo consumo de hardware. Cabe señalar que el uso de una neurona por cada circuito aritmético representa la mejor optimización en la reducción de número de neuronas reportada hasta la fecha. Dado que la tendencia en el diseño de los circuitos aritméticos neuronales es reducir al mínimo el número de neuronas por cada circuito. Nuestros resultados demuestran que la incorporación de diversos mecanismos, los cuales están presentes en el sistema nervioso (crecimiento dendrítico, retardos dendríticos, conexiones dendríticas de retroalimentación, reglas en las sinapsis y control por medio de astrocitos), permite crear sistemas de cómputo eficientes en términos de área, lo que podría potencialmente mejorar las capacidades de los actuales circuitos binarios [16, 17]. Parte de nuestro trabajo a futuro es crear arquitecturas paralelas teniendo como base estos circuitos seriales. Evidentemente, esto permitiría mejorar la velocidad de procesamiento de números grandes teniendo un mayor consumo de hardware.

VII. APÉNDICE: ESQUEMA DEL PROCESADOR Y DIAGRAMAS DE SIMULACIÓN DEL PROCESADOR

Figura 5. Componentes del procesador configurable para realizar cuatro operaciones aritméticas (suma, resta, multiplicación y división).

FRIAS et al.: FOUR SINGLE NEURON ARITHMETIC 43

Figura 6. Calculo de la suma de dos números enteros arbitrarios (d1=5 y d2=9).

Figura 7. Calculo de la resta de dos números enteros arbitrarios (d1=1 y d2=9).

Figura 8. Calculo de la multiplicación de dos números enteros arbitrarios (d1=3 y d2=2).

Figura 9. Calculo de la división de dos números enteros arbitrarios (d1=5 y d2=2)

REFERENCIAS

[1] M. Ionescu, G. Pặun, T. Yokomori, “Spiking neural P systems”, Fundam. inf., 71, (2), pp. 279–308, 2006.

[2] X. Zeng, X. Zhang, T. Song, L. Pan, “Spiking neural P systems with thresholds”, Neural computation, 26, (7), pp. 1340–1361, 2014.

[3] T. Song, Q. Zou, X. Liu, X. Zeng, “Asynchronous spiking neural P systems with rules on synapses”, Neurocomputing, 151, pp. 1439–1445, 2015.

[4] X. Wang, T. Song, F. Gong, P. Zheng, “On the Computational Power of Spiking Neural P Systems with Self-Organization”, Scientific Reports, 6, 2016.

[5] C. Diaz, G. Sanchez, G. Duchen, M. Nakano, H. Perez, “An efficient hardware implementation of a novel unary spiking neural network multiplier with variable dendritic delays”, Neurocomputing, 189, pp. 130–134, 2016.

[6] T. Song, P. Zheng, M. Dennis, X. Wang, “Design of logic gates using spiking P systems with homogeneous neurons and astrocyte-like control”, Information Sciences, 372, pp. 380–391, 2016.

[7] T. Song, X. Liu, X. Zeng, “Asynchronous Spiking Neural P Systems with Anti-Spikes”, Neural Processing Letters, 42, (3), pp. 633–647, 2015.

[8] T. Wang, G. Zhang, J. Zhao, Z. He, J. Wang, M.J. Pérez-Jiménez, “Fault diagnosis of electric power systems based on fuzzy reasoning spiking neural P systems”, IEEE Trans. on Power System, 30, (3), pp. 1182–1194, 2015.

[9] A.M. Gutierrez-Naranjo, A. Leporati, “First steps towards a CPU made of spiking neural P systems”, Int. J. Comput. Commun. Control, 4, (3), pp. 244–252, 2009.

[10] X. Liu, Z. Li, J. Liu, L. Liu, X. Zeng, “Implementation of arithmetic operations with time-free spiking neural P systems”, IEEE Transactions on NanoBioscience, 14, (6), pp. 617–624, 2015.

[11] M. London, M. Häusser, “Dendritic computation”, Annu. Rev. Neurosci., 28, pp. 503-532, 2005.

[12] G. Perea, A. Araque, “Communication between astrocytes and neurons: a complex language”, Journal of Physiology Paris, 96, pp. 199–207, 2002.

[13] X. Zeng, T. Song, X. Zhang, L. Pan, “Performing four basic arithmetic operations with spiking neural P systems”, IEEE transactions on nanobioscience, 11, (4), pp. 366-374, 2012.

[14] X. Peng, J. Liu, W. Liang, “Several Arithmetic Operations on Spiking Neural P Systems”, In Proceedings of the 2nd International Conference on Computer Science and Electronics Engineering. Atlantis Press, 2013.

[15] L. Yurong, F. Kailei, D. Quansheng, A. Wen, “Spiking Neural P System for Performing Division of Two Arbitrary Natural Numbers”, Journal of Convergence Information Technology, 9, (4), pp. 90, 2014.

[16] S. Carrillo, H. Carrillo and F. Viveros, "Design and Implementation of an Arithmetic Processor Unit Based on the Logarithmic Number System," in IEEE Latin America Transactions, vol. 8, no. 6, pp. 605-617, Dec. 2010.

[17] R. Rodriguez Ponce and D. V. Talavera, "FPGA Implementation of Decimal Division for Motor Control Drives," in IEEE Latin America Transactions, vol. 14, no. 9, pp. 3980-3985, Sept. 2016.

44 IEEE LATIN AMERICA TRANSACTIONS, VOL. 16, NO. 1, JAN. 2018

Thania Frias received the M.S. degree at Instituto Politecnico Nacional, Mexico in 2013. Currently, she is a Ph.D. student at the Instituto Politécnico Nacional. Her research interest is linked to the development of neural arithmetic circuits implemented in neuromorphic hardware.

Carlos Diaz received the M.S. degree at Instituto Politécnico Nacional, Mexico, in 2011, currently he is Ph.D. student at Instituto Politécnico Nacional. His main research interests include development of neuromorphics systems, cryptosystems, adaptive systems and image processing.

Giovanny Sánchez received the M.S. degree at Instituto Politecnico Nacional, Mexico, in 2008, and the Ph.D. degree at Universitat Politécnica de Catalunya, Spain, in 2014. His research is focused on developing neural-based cryptosystems in neuromorphic hardware. Currently, he is an Associate Professor in the Instituto Politécnico Nacional, Mexico.

Gabriel García received the B.Sc. at Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologias Avanzadas (UPIITA) of Instituto Politecnico Nacional in 2012. He is currently a master student at Instituto Politécnico Nacional. His interests are related to the development of neuromorphic systems on FPGA. Gerardo Avalos received the B.Sc. and the Ph.D. degrees in electronics and communications engineering from the Instituto Politécnico Nacional, Mexico, in 2008 and 2014, respectively. He is currently working as a Professor in the Department of Computer Engineering, at the Instituto Politécnico Nacional. His current research interests are: signal processing, early auditory processing and neuromorphic systems.

Héctor Pérez received the M.S. degree from the University of Electro-Communications, Tokyo Japan, a Ph. D. degree in Electrical Engineering from Tokyo Institute of Technology. He is a professor of Instituto Politécnico Nacional and his principal research interests are adaptive systems, image processing, pattern recognition, information security and related fields.

FRIAS et al.: FOUR SINGLE NEURON ARITHMETIC 45