• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 30
  • 29
  • 6
  • 2
  • 2
  • 1
  • 1
  • Tagged with
  • 88
  • 17
  • 17
  • 16
  • 16
  • 16
  • 15
  • 15
  • 14
  • 14
  • 13
  • 12
  • 12
  • 11
  • 10
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
11

Particionamento Temporal Acoplado a Escolha de Componentes para Aplicações de Computação Reconfigurável

Sérgio Brandão do Nascimento, Paulo 31 January 2008 (has links)
Made available in DSpace on 2014-06-12T15:50:20Z (GMT). No. of bitstreams: 2 arquivo1962_1.pdf: 6205609 bytes, checksum: 86f9f23173b3ed39d6763c36b0c8bda9 (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2008 / Nos últimos anos, assistimos um aumento do interesse pelo uso de FPGAs para aceleração de aplicações que apresentam desempenho limitado em software, devido à complexidade ou grande quantidade de dados a serem processados. Áreas como Processamento Digital de Sinais, Telecomunicações, Processamento de Imagens, Bioinformática e Computação Científica de Alto Desempenho têm tirado proveito desta tecnologia. Este interesse pode ser justificado por diversos fatores: As grandes melhorias introduzidas nos processos de microeletrônica que têm permitido a construção de FPGAs cada vez mais densos, capazes de comportar sistemas muito complexos com milhões de portas lógicas equivalentes. Além disso, estas melhorias têm permitido a construção de dispositivos que podem opera com freqüências de centenas de megahertz, permitindo implementações com altíssimo desempenho. Nos últimos anos, a velocidade dos processadores modernos se estabilizou na casa de 3GHz. Esta estagnação se deve, principalmente, a limitações na capacidade de dissipar o calor gerado em altas freqüências. Com isto, o atendimento das demandas por desempenho deve ser feito por meio da exploração de novas arquiteturas, que visem o paralelismo de tarefas, como são as arquiteturas de CPUs Multi-Cores e FPGAs. As implementações em FPGAs são capazes de realizar mais computação com menos consumo de energia, quando comparados a CPUs convencionais ou Multi-Cores. Isto cria vantagens estratégicas, pelo fato de que o consumo elevado de energia elétrica é um limitador para o aumento da capacidade de processamento em sistemas de alto desempenho, com impacto na viabilidade e custo de instalação, funcionamento e manutenção de sistemas. Sistemas Reconfiguráveis baseados em FPGAs correspondem, atualmente, a uma das arquiteturas alternativas que tem demonstrado bons desempenhos em diversas aplicações experimentais e em um número crescente de casos bem sucedidos de aplicações comerciais. Apesar destas vantagens e da alta capacidade de adaptação às aplicações, com exploração de paralelismo, o grande problema para a popularização do uso destes dispositivos está na dificuldade de programação a partir de descrições em alto nível, como C e C++. Em especial, o particionamento temporal das aplicações consiste em uma etapa fundamental para obtenção de qualidade da implementação. Este trabalho de Tese contribui para a redução da dificuldade de programação dos Sistemas de Computação Reconfiguráveis (SCR), propondo uma Metodologia de Particionamento Temporal que considera o reuso de componentes IP-Cores, escolhidos a partir de várias opções disponíveis em uma biblioteca de componentes, de forma a otimizar a utilização dos recursos do FPGA. Esta metodologia explora diversas possibilidades de implementação para as tarefas em hardware e diversos agrupamentos de tarefas em partições temporais. No melhor do nosso conhecimento, apenas dois métodos foram propostos na literatura, por Vemuri e Ouni, que tentam resolver os problemas de mapeamento de aplicação que são abordados. Entretanto, os resultados experimentais, descritos nesta Tese, demonstram as vantagens da nossa proposta. Além disso, a metodologia apresentada é a primeira, que tem-se notícia, que utiliza o método de busca Tabu Search para realização do particionamento temporal, integrado à escolha de componentes, a partir de uma biblioteca de IP-Cores
12

Uma arquitetura sistólica para solução de sistemas lineares implementada com circuitos FPGAs. / A systolic architecture to solving linear systems implemented with FPGAs devices.

Aragão, Antônio Carlos de Oliveira Souza 17 December 1998 (has links)
Neste trabalho de mestrado foi desenvolvido o projeto de uma máquina paralela dedicada para solução de sistemas de equações lineares. Este é um problema presente em uma grande variedade de aplicações científicas e de engenharia e cuja solução torna-se uma tarefa computacionalmente intensiva , a medida em que o número de incógnitas aumenta. Implementou-se uma Arquitetura Sistólica unidimensional, conectada numa topologia em anel, que mapeia métodos de solução iterativos. Essa classe de arquiteturas paralelas apresenta características de simplicidade, regularidade e modularidade que facilitam implementações em hardware, sendo muito utilizadas em sistemas de computação dedicados à solução de problemas específicos, que possuem como características básicas a grande demanda computacional e a necessidade de respostas em tempo real. Foram adotadas metodologias e ferramentas avançadas para projeto de hardware que aceleram o ciclo de desenvolvimento e para a implementação foram utilizados circuitos reconfiguráveis FPGAs (Field Programmable Gate Arrays). Os resultados de desempenho são apresentados e avaliados apontado a melhor configuração da arquitetura para atingir um speedup em relação a implementações em máquinas seqüenciais. Também são discutidas as vantagens e desvantagens deste tipo de abordagem e metodologia na solução de problemas que possuem requisitos de tempo. / This dissertation presents the project of a parallel machine dedicated for solving linear systems. This is a problem that appears in a great variety of scientific and engineering applications with a solution that becomes a computationally intensive task, measured by the increasing number of unknown variables. An Systolic Architecture was implemented, connected in a ring topology, mapping an iterative solution method. This class of parallel architectures presents characteristics of simplicity, regularity and modularity that facilitate hardware implementations, being very used in dedicated computation systems to the solution of specific problems, which possess as requirements to handle great computational demand and real-time response. Advanced methodologies and tools for hardware project were adopted to accelerate the development cycle. The architecture has been implemented and verified on FPGAs (Field Programmable Gate Arrays). The performance results are presented and discussed, indicating the feasibility and efficiency of the adopted approach and methodology for this kind of problem.
13

Arquitetura pipeline reconfigurável através de instruções geradas por programação genética para processamento morfológico de imagens digitais utilizando FPGAs / Reconfigurable pipelined architecture through instructions generated by genetic programming for morphological image processing using FPGAs

Pedrino, Emerson Carlos 27 November 2008 (has links)
A morfologia matemática fornece ferramentas poderosas para a realização de análise de imagens em baixo nível e tem encontrado aplicações em diversas áreas, tais como: visão robótica, inspeção visual, medicina, análise de textura, entre outras. Muitas dessas aplicações requerem processamento em tempo real e para sua execução de forma eficiente freqüentemente é utilizado hardware dedicado. Também, a tarefa de projetar operadores morfológicos manualmente para uma dada aplicação não é trivial na prática. A programação genética, que é um ramo relativamente novo em computação evolucionária, está se consolidando como um método promissor em aplicações envolvendo processamento de imagens digitais. Seu objetivo primordial é descobrir como os computadores podem aprender a resolver problemas sem, no entanto, serem programados para essa tarefa. Essa área ainda não foi muito explorada no contexto de construção automática de operadores morfológicos. Assim, neste trabalho, desenvolve-se e implementa-se uma arquitetura original, de baixo custo, reconfigurável por meio de instruções morfológicas e lógicas geradas automaticamente através de uma aproximação linear baseada em programação genética, visando-se o processamento morfológico de imagens em tempo real utilizando FPGAs de alta complexidade, com objetivos de filtragem, reconhecimento de padrões e emulação de filtros desconhecidos de softwares comerciais, para citar somente algumas aplicações. Exemplos de aplicações práticas envolvendo imagens binárias, em níveis de cinza e coloridas são fornecidos e seus resultados são comparados com outras formas de implementação. / Mathematical morphology supplies powerful tools for low level image analysis, with applications in robotic vision, visual inspection, medicine, texture analysis and many other areas. Many of the mentioned applications require dedicated hardware for real time execution. The task of designing manually morphological operators for a given application isnot always a trivial one. Genetic programming is a relatively new branch of evolutionary computing and it is consolidating as a promising method for applications of digital image processing. The main objective of genetic programming is to discover how computers can learn to solve problems without being programmed for that. In the literature little has been found about the automatic morphological operators construction using genetic programming. In this work, the development of an original reconfigurable architecture using logical and morphological instructions generated automatically by a linear approach based on genetic programming is presented. The developed architecture is based on Field Programmable Gate Arrays (FPGAs) and has among the possible applications, image filtering, pattern recognition and filter emulation. Binary, gray level and color image practical applications using the developed architecture are presented and the results are compared with other implementation techniques.
14

Arquitetura para extração de características invariantes em imagens binárias utilizando dispositivos de lógica programável complexa / Architectures for the extraction of invariant characteristics from binary images using logic programmable devices

Jorge, Guilherme Henrique Renó 17 August 2006 (has links)
Os projetistas de sistemas digitais enfrentam sempre o desafio de encontrar o balanço correto entre velocidade e generalidade de processamento de seu hardware. Originalmente dispositivos de lógica programável de alta densidade como FPGAs (Field Programable Gate Arrays) e CPLDs (Complex Logic Programmable Devices) vinham sendo utilizados como dispositivos de lógica acoplada(glue logic), reduzindo significantemente o número de componentes em um sistema. Seu uso como forma de substituir arquiteturas já existentes de microcontroladores e microprocessadores já é uma realidade. A representação e reconhecimento de objetos em imagens de duas dimensões é um tópico importante. Uma forma comum de se fazer a representação de um objeto ou uma imagem é a utilização de momentos da função de intensidade de um grupo de pixels. Devido ao alto custo computacional para o cálculo desses momentos tem sido importante a busca por arquiteturas que de alguma forma agilizem o cálculo dos mesmos. Um problema enfrentado por arquiteturas desenvolvidas atualmente para trabalhar em forma de periférico com um computador pessoal (PC) ou uma estação de trabalho é a velocidade do barramento de transferência de dados. Interfaces de uso mais simples, como USB (Universal Serial Bus) ou Ethernet, têm sua taxa de transferência na casa dos megabytes por segundo. Uma solução para esse problema é o uso do barramento PCI, as transferências feitas nesse barramento podem chegar à casa dos gigabytes por segundo. Esse trabalho vem apresentar uma arquitetura, em forma de soft core totalmente compatível com o padrão Wishbone, para a extração de características invariantes em imagens binárias utilizando-se de dispositivos de lógica programável complexa. Desse modo torna-se possível o uso do barramento PCI para a transmissão de dados para um microcomputador ou uma estação de trabalho. / A challenge for digital systems designers is to meet the balance between speed and flexibility was always. FPGAs and CPLDs where used as glue logic, reducing the number of components in a system. The use of programmable logic (CPLDs and FPGAs) as an alternative to microcontrollers and microprocessors is a real issue. Moments of the intensity function of a group of pixels have been used for the representation and recognition of objects in two dimensional images. Due to the high cost of computing the moments, the search for faster computing architectures is very important. A problem faced by nowadays developed architectures is the speed of computer communication buses. Simpler interfaces, as USB (Universal Serial Bus) and Ethernet, have their transfer rate in megabytes per second. A solution for this problem is the use the PCI bus, where the transfer rate can achieve gigabytes per second. This work presents a soft core architecture, fully compatible with the Wishbone standard, for the extraction of invariant characteristics from binary images using logic programmable devices.
15

Arquitetura para extração de características invariantes em imagens binárias utilizando dispositivos de lógica programável complexa / Architectures for the extraction of invariant characteristics from binary images using logic programmable devices

Guilherme Henrique Renó Jorge 17 August 2006 (has links)
Os projetistas de sistemas digitais enfrentam sempre o desafio de encontrar o balanço correto entre velocidade e generalidade de processamento de seu hardware. Originalmente dispositivos de lógica programável de alta densidade como FPGAs (Field Programable Gate Arrays) e CPLDs (Complex Logic Programmable Devices) vinham sendo utilizados como dispositivos de lógica acoplada(glue logic), reduzindo significantemente o número de componentes em um sistema. Seu uso como forma de substituir arquiteturas já existentes de microcontroladores e microprocessadores já é uma realidade. A representação e reconhecimento de objetos em imagens de duas dimensões é um tópico importante. Uma forma comum de se fazer a representação de um objeto ou uma imagem é a utilização de momentos da função de intensidade de um grupo de pixels. Devido ao alto custo computacional para o cálculo desses momentos tem sido importante a busca por arquiteturas que de alguma forma agilizem o cálculo dos mesmos. Um problema enfrentado por arquiteturas desenvolvidas atualmente para trabalhar em forma de periférico com um computador pessoal (PC) ou uma estação de trabalho é a velocidade do barramento de transferência de dados. Interfaces de uso mais simples, como USB (Universal Serial Bus) ou Ethernet, têm sua taxa de transferência na casa dos megabytes por segundo. Uma solução para esse problema é o uso do barramento PCI, as transferências feitas nesse barramento podem chegar à casa dos gigabytes por segundo. Esse trabalho vem apresentar uma arquitetura, em forma de soft core totalmente compatível com o padrão Wishbone, para a extração de características invariantes em imagens binárias utilizando-se de dispositivos de lógica programável complexa. Desse modo torna-se possível o uso do barramento PCI para a transmissão de dados para um microcomputador ou uma estação de trabalho. / A challenge for digital systems designers is to meet the balance between speed and flexibility was always. FPGAs and CPLDs where used as glue logic, reducing the number of components in a system. The use of programmable logic (CPLDs and FPGAs) as an alternative to microcontrollers and microprocessors is a real issue. Moments of the intensity function of a group of pixels have been used for the representation and recognition of objects in two dimensional images. Due to the high cost of computing the moments, the search for faster computing architectures is very important. A problem faced by nowadays developed architectures is the speed of computer communication buses. Simpler interfaces, as USB (Universal Serial Bus) and Ethernet, have their transfer rate in megabytes per second. A solution for this problem is the use the PCI bus, where the transfer rate can achieve gigabytes per second. This work presents a soft core architecture, fully compatible with the Wishbone standard, for the extraction of invariant characteristics from binary images using logic programmable devices.
16

Arquitetura pipeline reconfigurável através de instruções geradas por programação genética para processamento morfológico de imagens digitais utilizando FPGAs / Reconfigurable pipelined architecture through instructions generated by genetic programming for morphological image processing using FPGAs

Emerson Carlos Pedrino 27 November 2008 (has links)
A morfologia matemática fornece ferramentas poderosas para a realização de análise de imagens em baixo nível e tem encontrado aplicações em diversas áreas, tais como: visão robótica, inspeção visual, medicina, análise de textura, entre outras. Muitas dessas aplicações requerem processamento em tempo real e para sua execução de forma eficiente freqüentemente é utilizado hardware dedicado. Também, a tarefa de projetar operadores morfológicos manualmente para uma dada aplicação não é trivial na prática. A programação genética, que é um ramo relativamente novo em computação evolucionária, está se consolidando como um método promissor em aplicações envolvendo processamento de imagens digitais. Seu objetivo primordial é descobrir como os computadores podem aprender a resolver problemas sem, no entanto, serem programados para essa tarefa. Essa área ainda não foi muito explorada no contexto de construção automática de operadores morfológicos. Assim, neste trabalho, desenvolve-se e implementa-se uma arquitetura original, de baixo custo, reconfigurável por meio de instruções morfológicas e lógicas geradas automaticamente através de uma aproximação linear baseada em programação genética, visando-se o processamento morfológico de imagens em tempo real utilizando FPGAs de alta complexidade, com objetivos de filtragem, reconhecimento de padrões e emulação de filtros desconhecidos de softwares comerciais, para citar somente algumas aplicações. Exemplos de aplicações práticas envolvendo imagens binárias, em níveis de cinza e coloridas são fornecidos e seus resultados são comparados com outras formas de implementação. / Mathematical morphology supplies powerful tools for low level image analysis, with applications in robotic vision, visual inspection, medicine, texture analysis and many other areas. Many of the mentioned applications require dedicated hardware for real time execution. The task of designing manually morphological operators for a given application isnot always a trivial one. Genetic programming is a relatively new branch of evolutionary computing and it is consolidating as a promising method for applications of digital image processing. The main objective of genetic programming is to discover how computers can learn to solve problems without being programmed for that. In the literature little has been found about the automatic morphological operators construction using genetic programming. In this work, the development of an original reconfigurable architecture using logical and morphological instructions generated automatically by a linear approach based on genetic programming is presented. The developed architecture is based on Field Programmable Gate Arrays (FPGAs) and has among the possible applications, image filtering, pattern recognition and filter emulation. Binary, gray level and color image practical applications using the developed architecture are presented and the results are compared with other implementation techniques.
17

Uma arquitetura sistólica para solução de sistemas lineares implementada com circuitos FPGAs. / A systolic architecture to solving linear systems implemented with FPGAs devices.

Antônio Carlos de Oliveira Souza Aragão 17 December 1998 (has links)
Neste trabalho de mestrado foi desenvolvido o projeto de uma máquina paralela dedicada para solução de sistemas de equações lineares. Este é um problema presente em uma grande variedade de aplicações científicas e de engenharia e cuja solução torna-se uma tarefa computacionalmente intensiva , a medida em que o número de incógnitas aumenta. Implementou-se uma Arquitetura Sistólica unidimensional, conectada numa topologia em anel, que mapeia métodos de solução iterativos. Essa classe de arquiteturas paralelas apresenta características de simplicidade, regularidade e modularidade que facilitam implementações em hardware, sendo muito utilizadas em sistemas de computação dedicados à solução de problemas específicos, que possuem como características básicas a grande demanda computacional e a necessidade de respostas em tempo real. Foram adotadas metodologias e ferramentas avançadas para projeto de hardware que aceleram o ciclo de desenvolvimento e para a implementação foram utilizados circuitos reconfiguráveis FPGAs (Field Programmable Gate Arrays). Os resultados de desempenho são apresentados e avaliados apontado a melhor configuração da arquitetura para atingir um speedup em relação a implementações em máquinas seqüenciais. Também são discutidas as vantagens e desvantagens deste tipo de abordagem e metodologia na solução de problemas que possuem requisitos de tempo. / This dissertation presents the project of a parallel machine dedicated for solving linear systems. This is a problem that appears in a great variety of scientific and engineering applications with a solution that becomes a computationally intensive task, measured by the increasing number of unknown variables. An Systolic Architecture was implemented, connected in a ring topology, mapping an iterative solution method. This class of parallel architectures presents characteristics of simplicity, regularity and modularity that facilitate hardware implementations, being very used in dedicated computation systems to the solution of specific problems, which possess as requirements to handle great computational demand and real-time response. Advanced methodologies and tools for hardware project were adopted to accelerate the development cycle. The architecture has been implemented and verified on FPGAs (Field Programmable Gate Arrays). The performance results are presented and discussed, indicating the feasibility and efficiency of the adopted approach and methodology for this kind of problem.
18

Chiffrement authentifié sur FPGAs de la partie reconfigurable à la partie static / Authenticated Encryption on FPGAs from the Reconfigurable Part to the Static Part

Moussa Ali Abdellatif, Karim 07 October 2014 (has links)
Les systèmes de communication ont besoin d'accéder, stocker, manipuler, ou de communiquer des informations sensibles. Par conséquent, les primitives cryptographiques tels que les fonctions de hachage et le chiffrement par blocs sont déployés pour fournir le cryptage et l'authentification. Récemment, des techniques ont été inventés pour combiner cryptage et d'authentification en un seul algorithme qui est appelé authentifiés Encryption (AE). La combinaison de ces deux services de sécurité dans le matériel de meilleures performances par rapport aux deux algorithmes séparés puisque l'authentification et le cryptage peuvent partager une partie du calcul. En raison de la combinaison de la programmation de l'exécution d'matériel personnalisé, FPGA deviennent plus communs comme cible d'une mise en œuvre de ces algorithmes. La première partie de cette thèse est consacrée aux architectures d'algorithmes AE, AES-GCM et AEGIS-128 à base de FPGA efficaces et à grande vitesse, afin d'être utilisé dans la partie reconfigurable FPGA pour soutenir les services de sécurité des systèmes de communication. Notre focalisation sur l'état de l'art conduit à la mise en place d'architectures à haute vitesse pour les applications lentes touches changeantes comme les réseaux privés virtuels (VPN). En outre, nous présentons un procédé efficace pour mettre en oeuvre le GF($2^{128}$) multiplicateur, qui est responsable de la tâche d'authentification en AES-GCM, pour supporter les applications à grande vitesse. En outre, un système efficace AEGIS-128 est également mis en œuvre en utilisant seulement cinq tours AES. Nos réalisations matérielles ont été évaluées à l'aide Virtex-5 et Virtex-4 FPGA. La performance des architectures présentées (Thr. / Parts) surpasse ceux signalés précédemment.La deuxième partie de la thèse présente des techniques pour des solutions à faible coût afin de garantir la reconfiguration du FPGA. Nous présentons différentes gammes de mises en œuvre à faible coût de AES-GCM, AES-CCM, et AEGIS-128, qui sont utilisés dans la partie statique du FPGA afin de décrypter et authentifier le bitstream FPGA. Architectures ASIC présentées ont été évaluées à l'aide de 90 et 65 technologies nm et présentent de meilleures performances par rapport aux travaux antérieurs. / Communication systems need to access, store, manipulate, or communicate sensitive information. Therefore, cryptographic primitives such as hash functions and block ciphers are deployed to provide encryption and authentication. Recently, techniques have been invented to combine encryption and authentication into a single algorithm which is called Authenticated Encryption (AE). Combining these two security services in hardware produces better performance compared to two separated algorithms since authentication and encryption can share a part of the computation. Because of combining the programmability with the performance ofcustom hardware, FPGAs become more common as an implementation target for such algorithms. The first part of this thesis is devoted to efficient and high-speed FPGA-based architectures of AE algorithms, AES-GCM and AEGIS-128, in order to be used in the reconfigurable part of FPGAs to support security services of communication systems. Our focus on the state of the art leads to the introduction of high-speed architectures for slow changing keys applications like Virtual Private Networks (VPNs). Furthermore, we present an efficient method for implementing the GF($2^{128}$) multiplier, which is responsible for the authentication task in AES-GCM, to support high-speed applications. Additionally, an efficient AEGIS-128is also implemented using only five AES rounds. Our hardware implementations were evaluated using Virtex-5 and Virtex-4 FPGAs. The performance of the presented architectures (Thr./Slices) outperforms the previously reported ones.The second part of the thesis presents techniques for low cost solutions in order to secure the reconfiguration of FPGAs. We present different ranges of low cost implementations of AES-GCM, AES-CCM, and AEGIS-128, which are used in the static part of the FPGA in order to decrypt and authenticate the FPGA bitstream. Presented ASIC architectures were evaluated using 90 and 65 nm technologies and they present better performance compared to the previous work.
19

FPGAs: RE-INVENTING THE SIGNAL PROCESSOR

Dick, Chris 10 1900 (has links)
International Telemetering Conference Proceedings / October 21, 2002 / Town & Country Hotel and Conference Center, San Diego, California / FPGAs are increasingly being employed for building real-time signal processing systems. They have been used extensively for implementing the PHY in software radio architectures. This paper provides a technology and market perspective on the use FPGAs for signal processing and demonstrates FPGA DSP using an adaptive channel equalizer case study.
20

A High-performance, Reconfigurable Architecture for Restricted Boltzmann Machines

Ly, Daniel Le 15 February 2010 (has links)
Despite the popularity and success of neural networks in research, the number of resulting commercial or industrial applications have been limited. A primary cause of this lack of adoption is due to the fact that neural networks are usually implemented as software running on general-purpose processors. Hence, a hardware implementation that can take advantage of the inherent parallelism in neural networks is desired. This thesis investigates how the Restricted Boltzmann machine, a popular type of neural network, can be effectively mapped to a high-performance hardware architecture on FPGA platforms. The proposed, modular framework is designed to reduce the time complexity of the computations through heavily customized hardware engines. The framework is tested on a platform of four Xilinx Virtex II-Pro XC2VP70 FPGAs running at 100MHz through a variety of different configurations. The maximum performance was obtained by instantiating a Restricted Boltzmann Machine of 256x256 nodes distributed across four FPGAs, which results in a computational speed of 3.13 billion connection-updates-per-second and a speed-up of 145-fold over an optimized C program running on a 2.8GHz Intel processor.

Page generated in 0.0285 seconds