Ir al contenido

Documat


Resumen de On the use of stochastic logic for non-linear circuits and systems

Oscar Camps Pascual

  • español

    La creciente penetración de los dispositivos relacionados con el procesamiento y el transporte de datos, las redes inalámbricas, y, en general, el Internet de las cosas (IoT) ha dado lugar a un rápido aumento de los dispositivos edge. Los números son enormes y las predicciones maravillosas [1]; en unos años (para el 2025) 180 ZBytes será la cantidad de datos a manejar (International Data Corporation - IDC). Además, los dispositivos IoT superarán los 150 mil millones y se estima que los datos producidos por ellos serán alrededor del 70% de los datos producidos a nivel mundial (IDC) [1]. Es evidente que todos los tipos de procesamiento centralizado, incluso en forma de nube, no pueden admitir de manera adecuada y eficiente este nuevo panorama informático; teniendo también en cuenta que IoT tiene que ir de la mano de otras tecnologías en materia de inteligencia artificial, big data, computación móvil, etc., a las que se está denominando plataformas de computación ubicua. Por lo tanto, la computación edge se eleva en el horizonte y exige el procesamiento de datos en el perímetro de la red. Todas estas tecnologías requieren enfoques innovadores [2,3] y algunos de esos enfoques son computación aproximada [4¿6], aprendizaje profundo [7], nuevos dispositivos y arquitecturas post-CMOS [8], o técnicas de procesamiento avanzadas [9, 10]. Uno de los campos donde más potencia computacional se requiere es el de las comunicaciones, especialmente cuando se incluye la protección de la privacidad y la seguridad de los datos. Así, el cifrado de datos surge como un elemento obligatorio. Hoy en día, se proponen muchas técnicas y enfoques en el contexto del IoT, en todos los niveles jerárquicos de las comunicaciones de datos, otros para garantizar la privacidad [11] y otros para garantizar prácticamente la seguridad [12]. En consecuencia, existen numerosas propuestas en este sentido, generalmente ubicuas; una de esas opciones prometedoras parece inclinarse hacia el uso de esquemas de codificador-decodificador basados en caos para asegurar y/o autenticar la transmisión de datos en general [13]. Hay ejemplos de tales sistemas de comunicación segura, analógicos [14, 15] y digitales [16, 17] que demuestran méritos como bajo costo, simplicidad de circuitos, operación de bajo consumo, etc. [9, 10, 18, 19]. Por otro lado, parece que la computación aproximada permite un alto ahorro de energía [6], lo que convierte a esta técnica en un candidato viable para los dispositivos IoT edge. Este marco ofrece ahorros de energía al intercambiar precisión por energía. Hay un puñado de métodos que pueden implementar con éxito la computación aproximada: métodos y algoritmos de programación, implementaciones de hardware y otras soluciones ubicuas. Como nota curiosa, esto recuerda fuertemente la forma en que Lorenz encontró el caos, encontrando diferentes soluciones al conjunto homónimo de ecuaciones debido al almacenamiento de números truncados [20]. Von Neumann ya había introducido un enfoque interesante en 1956 [21], basado en una serie de conferencias dadas por R.S. Pierce en 1952 en el Instituto de Tecnología de California. Este enfoque, a saber, Computación estocástica (SC) o Lógica estocástica, hace un compromiso entre el tiempo de cálculo y la precisión. Este enfoque se ha aplicado con éxito en campos tan diversos como la implementación de redes neuronales [22, 23], minería de datos [24], compresión de datos [25] o cálculos matemáticos (FFT) [26], control [27], o incluso conversión A/D [28], entre otros. Indicativo de sus ventajas, permite una gran reducción en el número de componentes, reduciendo así la potencia necesaria para hacer funcionar el circuito. Sin embargo, esto tiene un precio, ya que el tiempo necesario para realizar la operación también aumenta exponencialmente con el número de bits. Hay casos en los que esta compensación juega un papel crucial, como en el caso de los sistemas caóticos. Se sabe que las características clave de todos los sistemas caóticos no lineales son: comportamiento aperiódico acotado a largo plazo, mayor sensibilidad a los parámetros y condiciones iniciales, y rápida descorrelación entre el pasado y el presente [29]. Estas características, especialmente la sensibilidad a las condiciones iniciales y los valores de los parámetros, hacen que la implementación adecuada de sistemas caóticos dentro de marcos informáticos aproximados sea difícil, aunque no imposible. Un ejemplo exitoso es el caso de implementar un oscilador caótico en un entorno puramente digital [17], pero con el costo de crear una implementación mucho más complicada (de mayor dimensión). En esta tesis, nos hemos centrado en el uso de la computación estocástica (CE) aplicada a la resolución de diferentes problemas. Como primer paso, hemos evaluado la eficacia de la CE a la hora de implementar circuitos no lineales con comportamiento caótico. Específicamente, en el capítulo 2 hemos implementado el llamado sistema de Shimizu-Morioka en CE. Los resultados (publicados en parte en [30]) han mostrado que esta implementación puede ser útil, si se hace usando un número limitado de bits, con implementaciones en paralelo. En el capítulo 3, hemos presentado tres implementaciones de memristores y sistemas memristivos basados en CE. El primero de los tres es un emulador de memristor digital basado en el modelo de flujo-carga. Esta parte del capítulo se basa en el artículo publicado en [31]. La segunda propuesta, publicada parcialmente en [32], incluye la implementación de un emulador de memristor utilizando capacidades conmutadas. Finalmente, en la última parte del capítulo con respecto a la tercera implementación presentada, proponemos una mejora al emulador anterior, añadiéndole CE. Esta última parte del capítulo se publicó parcialmente en [33], [34] y [35]. En el siguiente capítulo, proponemos algunas aplicaciones desarrolladas con emuladores de memristores y CE. En la primera parte del capítulo 4, realizaremos el diseño e implementación de un sistema para resolver laberintos, utilizando el emulador memristivo como elemento de retardo. Inicialmente comprobamos la operación del sistema en Matlab y a continuación lo exportamos a dos FPGAs diferentes. Esta parte del capítulo fue publicada parcialmente en [36]. El final del capítulo 4 incluye una propuesta para el uso de la CE en el diseño e implementación de Redes Celulares No-Lineales (Cellular Nonlinear Networks - CNN). Combinando Matlab y una FPGA, desarrollaremos una CNN para aplicar a tres procesos (Almacenado, detección de bordes y definición de imagen) en tiempo real a imágenes en escala de grises y en color. Esta parte del capítulo fue publicada parcialmente en [37] y [38]. Finalmente, acabamos la tesis con un capítulo de conclusiones, en el cual discutiremos sobre el valor y eficiencia de utilizar CE para diferentes casos, especialmente para aplicaciones de computación en el perímetro de la red.

  • català

    La creixent penetració de dispositius relacionats amb les xarxes sense fils, el processament i el transport de dades i, en general, l¿Internet de les coses (Internet of Things, IoT) ha donat lloc a un ràpid augment de la quantitat de dispositius de computació en el llindar (edge computing). Els números són enormes i les prediccions són espectaculars [1]; d¿aquí a uns anys (el 2025) 180 ZBytes serà la quantitat de dades que s¿haurà de gestionar (International Data Corporation - IDC). A més, els dispositius IoT superaran els 150.000 milions i s¿estima que les dades produïdes per ells seran al voltant del 70% de les dades produïdes a tot el món (IDC) [1]. És evident que tots els tipus de processament centralitzat, fins i tot en forma de núvol, no poden suportar de manera adequada i eficient aquest nou panorama informàtic; tenint en compte també el fet que l¿IoT ha d¿anar de la mà d¿altres tecnologies en matèria d¿intel·ligència artificial, big data, informàtica mòbil, etc. que s¿estan denominant plataformes d¿informàtica ubiqua. Per tant, la computació edge s¿alça a l¿horitzó, demanant el processament de dades a la vora de la xarxa. Totes aquestes tecnologies requereixen enfocaments innovadors [2,3] i alguns d¿aquests enfocaments són computació aproximada [4¿6], aprenentatge profund [7], nous dispositius i arquitectures post-CMOS [8], o tècniques avançades de processament [9, 10]. Un dels camps on es requereix més potència computacional és el de les comunicacions, especialment quan s¿han d¿incloure la protecció i la seguretat de la privacitat de les dades. Així, el xifratge de dades sorgeix com un element obligatori. Actualment, en el context de l¿IoT es proposen moltes tècniques i enfocaments, en tots els nivells jeràrquics de comunicacions de dades, d¿altres per garantir la privacitat [11] i d¿altres per garantir pràcticament la seguretat [12]. En conseqüència, existeixen nombroses propostes en aquest sentit, generalment omnipresents; una d¿aquestes opcions prometedores sembla inclinar-se cap a l¿ús d¿esquemes de codificador-descodificador basats en caos per assegurar i/o autenticar la transmissió de dades en general [13]. Hi ha exemples d¿aquests sistemes de comunicació segura, [14, 15] i digitals [16, 17] que demostren mèrits com el baix cost, la simplicitat del circuit, el funcionament de baix consum, etc. [9, 10, 18, 19]. D¿altra banda, sembla que la informàtica aproximada permet un gran estalvi d¿energia [6], fent d¿aquesta tècnica un candidat viable per a dispositius edge IoT. Aquest marc ofereix estalvi energètic mitjançant l¿intercanvi de precisió per energia. Hi ha un grapat de mètodes que poden implementar amb èxit la informàtica aproximada: mètodes i algorismes de programació, implementacions de hardware i altres solucions omnipresents. Com a nota curiosa, això recorda fortament la manera com es va trobar el caos per Lorenz, trobant diferents solucions al conjunt homònim d¿equacions a causa de l¿emmagatzematge de nombres truncats [20]. Un enfocament interessant ja havia estat introduït per Von Neumann el 1956 [21], basat en una sèrie de conferències impartides per R.S. Pierce el 1952 a l¿Institut Tecnològic de Califòrnia. Aquest enfocament, és a dir, la informàtica estocàstica (SC) o la lògica estocàstica, fa una compensació entre el temps de càlcul i la precisió. Aquest enfocament s¿ha aplicat amb èxit en camps tan diversos com la implementació de xarxes neuronals [22,23], mineria de dades [24], compressió de dades [25] o càlculs matemàtics (FFT) [26], control [27], o fins i tot conversió A/D [28], entre d¿altres. Indicatiu dels seus avantatges, permet una gran reducció del nombre de components, reduint així la potència necessària per fer funcionar el circuit. Tanmateix, això té un preu, ja que el temps necessari per realitzar l¿operació també augmenta exponencialment amb el nombre de bits. Hi ha casos en què aquesta compensació juga un paper crucial, com en el cas dels sistemes caòtics. Se sap que les característiques clau de tots els sistemes no lineals i caòtics són: comportament aperiòdic limitat a llarg termini, sensibilitat millorada als paràmetres i condicions inicials i una ràpida descorrelació entre el passat i el present [29]. Aquestes característiques, especialment la sensibilitat a les condicions inicials i els valors dels paràmetres, fan que la implementació adequada de sistemes caòtics dins de marcs informàtics aproximats sigui difícil, però no impossible. Un exemple d¿èxit és el cas d¿implementar un oscil·lador caòtic en un entorn purament digital [17], però amb el cost de crear una implementació molt més complicada (de dimensions superiors). En aquesta tesi, ens hem centrat en l¿ús de la computació estocàstica (CE) a diferents problemes. Com a primer pas, hem avaluat l¿eficàcia de la CE a l¿hora d¿implementar circuits no lineals amb comportament caòtic. Específicament, al capítol 2 hem implementat l¿anomenat sistema de Shimizu-Morioka en CE. Els resultats (publicats en part a [30]) han mostrat que aquesta implementació pot ser útil, si es fa usant un nombre limitat de bits, amb implementacions en paral·lel. Al capítol 3, hem presentat tres implementacions de memristors i sistemes memristius basats en CE. El primer dels tres és un emulador de memristor digital basat en el model de fluxe-càrrega. Aquesta part del capítol es basa en l¿article publicat a [31]. La segona proposta, publicada parcialment a [32], inclou la implementació d¿un emulador de memristor usant capacitats commutades. Finalment, a la darrera part del capítol pel que fa a la tercera implementació presentada, proposam una millora a l¿emulador anterior, afegint-hi CE. Aquesta darrera part del capítol es va publicar parcialment a [33], [34] i [35]. Al següent capítol, proposam algunes aplicacions desenvolupades amb emuladors de memristors i CE. A la primera part del capítol 4, dissenyarem i implementarem un sistema per resoldre laberints, fent servir l¿emulador memristiu com a element de retard. Vàrem començar comprovant l¿operació del sistema amb Matlab i a continuació el vàrem exportar a dues FPGAs diferents. Aquesta part del capítol va ser publicada parcialment a [36]. El final del capítol 4 inclou una proposta per l¿ús de la CE per dissenyar i implementar Xarxes Cel·lulars No-lineals (Cellular Nonlinear Networks - CNN). Combinant Matlab i una FPGA, desenvoluparem una CNN per aplicar a tres processos (Enmagatzament, detecció de llindars i definició d¿imatge) en temps real a imatges en escala de grisos i en color. Aquesta part del capítol va ser publicada parcialment a [37] i [38]. Finalment, acabam la tesi amb un capítol de conclusions, on discutim sobre el valor i l¿eficiència d¿usar CE per diferents casos, especialment per aplicacions de computació al perímetre de la xarxa.

  • English

    The increasing pervasion of devices related to wireless networks, data process and transport and in general the Internet of Things (IoT) has led to a resultant rapid increase of edge devices. The numbers are enormous and the predictions are wondrous [1]; in a few years (by 2025) 180 ZBytes will be the amount of data to be handled (International Data Corporation - IDC). In addition, IoT devices will exceed 150 billions and it is estimated that the data produced by them will be about 70% of the data produced worldwide (IDC) [1]. It is apparent that all the types of centralized processing, even in the form of cloud, cannot properly and efficiently support this new computing landscape; taking also into account the fact that IoT has to go hand by hand with other technologies regarding artificial intelligence, big data, mobile computing etc., which are being referred to as ubiquitous computing platforms. Therefore, edge computing rises in the horizon, calling for data processing at the edge of the network. All these technologies call for innovative approaches [2, 3] and some of those approaches are approximate computing [4¿6], deep learning [7], new post-CMOS devices and architectures [8], or advanced processing techniques [9,10]. One of the fields where more computational power is required, is communications, especially when data privacy protection and security are included. Thus, data encryption emerges as a mandatory element. Nowadays, many techniques and approaches are proposed in the context of the IoT, in all hierarchical levels of data communications, others for ensuring privacy [11] and others for practically ensuring security [12]. As a result, there exist numerous proposals in this sense, usually ubiquitous ones; one such promising option seems to lean towards using chaotic-based encoder-decoder schemes to secure and/or authenticate data transmission in general [13]. There are examples of such secure-communication systems, analog [14, 15], and digital [16,17] ones demonstrating merits like low-cost, circuit simplicity, low-power operation etc. [9, 10, 18, 19]. On the other hand, it seems that approximate computing enables high power savings [6], making this technique a viable candidate for IoT edge devices. This framework offers energy savings by trading accuracy for energy. There are a handful of methods that can successfully implement approximate computing: programming methods and algorithms, hardware implementations and other ubiquitous solutions. As a curious note, this strongly reminds of the way chaos was encountered by Lorenz, finding different solutions of the homonyms set of equations because of truncated number storage [20]. An interesting approach had been already introduced by Von Neumann in 1956 [21], based on a series of lectures given by R.S. Pierce in 1952 at California Institute of Technology. This approach, namely Stochastic Computing (SC) or Stochastic Logic, makes a trade-off between calculation time and accuracy. This approach has been successfully applied in fields as diverse as neural network implementation [22, 23], data mining [24], data compression [25], or mathematical calculations (FFT) [26], control [27], or even A/D conversion [28], among others. An important advantage is that it allows for a high reduction in the number of components, thus reducing the power required to run the circuit. However, this comes to a price, since the time required to perform the operation also increases exponentially with the number of bits. There are cases where this trade-off plays a crucial role, like in the case of chaotic systems. It is known that key features of all nonlinear, chaotic systems are: long-term bounded aperiodic behavior, enhanced sensitivity to parameters and initial conditions, and fast de-correlation between past and present [29]. These features, especially sensitivity to initial conditions and parameter values, make proper implementation of chaotic systems within approximate computing frameworks, difficult, not impossible though. A successful example is the case of implementing a chaotic oscillator in a purely digital environment [17], but with the cost of creating a much more complicated (higher-dimensional) implementation. In this thesis, we have focused on the use of Stochastic Computing (SC) applied to the solution of several issues. As a first step, we¿ve evaluated the performance of SC when implementing nonlinear circuits with chaotic behavior. Specifically, in chapter 2 we have implemented the so-called Shimizu-Morioka system in SC. The results, partially published in [30]) have shown that this implementation can be useful, if it¿s done with a limited number of bits with parallel implementations. In chapter 3, we present three different implementations of memristors and memristor-based systems based on SC. The first one is a purely digital memristor based on a flux-charge model. This part of the chapter was partially published in [31]. The second proposal, partially published in [32], includes the implementation of a switched capacitor memristive emulator. Finally, at the last part of the chapter regarding the third presented implementation, we propose an improvement to the previous emulator by adding SC. This last part of the chapter was partially published in [33], [34] and [35]. In the next chapter, we propose a few applications developed with memristor emulators and SC. At the first part of the chapter 4, we design and implement a system for solving mazes, using the memristive emulator as a delay element. We initially checked the system¿s operation in Matlab and then we exported it to two different FPGAs. This part of the chapter was partially published in [36]. The end of chapter 4 includes a proposal for the use of SC in designing and implementing Cellular Nonlinear Networks (CNN). By combining Matlab and a FPGA, we develop a CNN and apply it to three real-time processes (Store, edge detection and image sharpening) for both grey and color images. This part of the chapter was partially published in [37] and [38]. Finally, the thesis ends with a concluding chapter, where next to briefly describing the presented work, we discuss about the value and the efficiency of using SC in several cases, especially for edge computing applications.


Fundación Dialnet

Mi Documat