12 research outputs found

    High-level Modelling and Exploration of Coarse-grained Re-configurable Architectures

    Full text link

    High-Level Design Space and Flexibility Exploration for Adaptive, Energy-Efficient WCDMA Channel Estimation Architectures

    Get PDF
    Due to the fast changing wireless communication standards coupled with strict performance constraints, the demand for flexible yet high-performance architectures is increasing. To tackle the flexibility requirement, software-defined radio (SDR) is emerging as an obvious solution, where the underlying hardware implementation is tuned via software layers to the varied standards depending on power-performance and quality requirements leading to adaptable, cognitive radio. In this paper, we conduct a case study for representatives of two complexity classes of WCDMA channel estimation algorithms and explore the effect of flexibility on energy efficiency using different implementation options. Furthermore, we propose new design guidelines for both highly specialized architectures and highly flexible architectures using high-level synthesis, to enable the required performance and flexibility to support multiple applications. Our experiments with various design points show that the resulting architectures meet the performance constraints of WCDMA and a wide range of options are offered for tuning such architectures depending on power/performance/area constraints of SDR

    Efficient implementation of channel estimation algorithm for beamforming

    Get PDF
    Abstract. The future 5G mobile network technology is expected to offer significantly better performance than its predecessors. Improved data rates in conjunction with low latency is believed to enable technological revolutions such as self-driving cars. To achieve faster data rates, MIMO systems can be utilized. These systems enable the use of spatial filtering technique known as beamforming. Beamforming that is based on the preacquired channel matrix is computationally very demanding causing challenges in achieving low latency. By acquiring the channel matrix as efficiently as possible, we can facilitate this challenge. In this thesis we examined the implementation of channel estimation algorithm for beamforming with a digital signal processor specialized in vector computation. We present implementations for different antenna configurations based on three different approaches. The results show that the best performance is achieved by applying the algorithm according to the limitations given by the system and the processor architecture. Although the exploitation of the parallel architecture was proved to be challenging, the implementation of the algorithm would have benefitted from the greater amount of parallelism. The current parallel resources will be a challenge especially in the future as the size of antenna configurations is expected to grow.Keilanmuodostuksen tarvitseman kanavaestimointialgoritmin tehokas toteutus. TiivistelmÀ. Tulevan viidennen sukupolven mobiiliverkkoteknologian odotetaan tarjoavan merkittÀvÀsti edeltÀjÀÀnsÀ parempaa suorituskykyÀ. TÀmÀn suorituskyvyn tarjoamat suuret datanopeudet yhdistettynÀ pieneen latenssiin uskotaan mahdollistavan esimerkiksi itsestÀÀn ajavat autot. Suurempien datanopeuksien saavuttamiseksi voidaan hyödyntÀÀ monitiekanavassa kÀytettÀvÀÀ MIMO-systeemiÀ, joka mahdollistaa keilanmuodostuksena tunnetun spatiaalisen suodatusmenetelmÀn kÀytön. EtukÀteen hankittuun kanavatilatietoon perustuva keilanmuodostus on laskennallisesti erittÀin kallista. TÀmÀ aiheuttaa haasteita verkon pienen latenssivaatimuksen saavuttamisessa. TÀssÀ työssÀ tutkittiin keilanmuodostukselle tarkoitetun kanavaestimointialgoritmin tehokasta toteutusta hyödyntÀen vektorilaskentaan erikoistunutta prosessoriarkkitehtuuria. TyössÀ esitellÀÀn kolmea eri lÀhestymistapaa hyödyntÀvÀt toteutukset eri kokoisille antennikonfiguraatioille. Tuloksista nÀhdÀÀn, ettÀ paras suorituskyky saavutetaan sovittamalla algoritmi jÀrjestelmÀn ja arkkitehtuurin asettamien rajoitusten mukaisesti. Vaikka rinnakkaisarkkitehtuurin hyödyntÀminen asetti omat haasteensa, olisi algoritmin toteutus hyötynyt suuremmasta rinnakkaisuuden mÀÀrÀstÀ. Nykyinen rinnakkaisuuden mÀÀrÀ tulee olemaan haaste erityisesti tulevaisuudessa, sillÀ antennikonfiguraatioiden koon odotetaan kasvavan

    H-SIMD machine : configurable parallel computing for data-intensive applications

    Get PDF
    This dissertation presents a hierarchical single-instruction multiple-data (H-SLMD) configurable computing architecture to facilitate the efficient execution of data-intensive applications on field-programmable gate arrays (FPGAs). H-SIMD targets data-intensive applications for FPGA-based system designs. The H-SIMD machine is associated with a hierarchical instruction set architecture (HISA) which is developed for each application. The main objectives of this work are to facilitate ease of program development and high performance through ease of scheduling operations and overlapping communications with computations. The H-SIMD machine is composed of the host, FPGA and nano-processor layers. They execute host SIMD instructions (HSIs), FPGA SIMD instructions (FSIs) and nano-processor instructions (NPLs), respectively. A distinction between communication and computation instructions is intended for all the HISA layers. The H-SIMD machine also employs a memory switching scheme to bridge the omnipresent large bandwidth gaps in configurable systems. To showcase the proposed high-performance approach, the conditions to fully overlap communications with computations are investigated for important applications. The building blocks in the H-SLMD machine, such as high-performance and area-efficient register files, are presented in detail. The H-SLMD machine hierarchy is implemented on a host Dell workstation and the Annapolis Wildstar II FPGA board. Significant speedups have been achieved for matrix multiplication (MM), 2-dimensional discrete cosine transform (2D DCT) and 2-dimensional fast Fourier transform (2D FFT) which are used widely in science and engineering. In another FPGA-based programming paradigm, a high-level language (here ANSI C) can be used to program the FPGAs in a mode similar to that of the H-SIMD machine in terms of trying to minimize the effect of overheads. More specifically, a multi-threaded overlapping scheme is proposed to reduce as much as possible, or even completely hide, runtime FPGA reconfiguration overheads. Nevertheless, although the HLL-enabled reconfigurable machine allows software developers to customize FPGA functions easily, special architecture techniques are needed to achieve high-performance without significant penalty on area and clock frequency. Two important high-performance applications, matrix multiplication and image edge detection, are tested on the SRC-6 reconfigurable machine. The implemented algorithms are able to exploit the available data parallelism with independent functional units and application-specific cache support. Relevant performance and design tradeoffs are analyzed

    ìžŹê”Źì„±í˜• 연산 ê”ŹìĄ°ë„Œ 위한 부동소수점 지원

    Get PDF
    í•™ìœ„ë…ŒëŹž (ë°•ì‚Ź)-- 서욞대학ꔐ 대학원 : ì „êž°Â·ì»Ží“ší„°êł”í•™ë¶€, 2014. 2. 씜Ʞ영.With a huge increase in demand for various kinds of compute-intensive applications in electronic systems, researchers have focused on coarse-grained reconfigurable architectures because of their advantages: high performance and flexibility. Besides, supporting floating-point operations on coarse-grained reconfigurable architecture becomes essential as the increase of demands on various floating-point inclusive applications such as multimedia processing, 3D graphics, augmented reality, or object recognition. This thesis presents FloRA, a coarse-grained reconfigurable architecture with floating-point support. Two-dimensional array of integer processing elements in FloRA is configured at run-time to perform floating-point operations as well as integer operations. More specifically, each floating-point operation is performed by two integer processing elements, one for mantissa and the other for exponent. Fabricated using 130nm process, the total area overhead due to additional hardware for floating-point operations is about 7.4% compared to the previous architecture which does not support floating-point operations. The fabricated chip runs at 125MHz clock frequency and 1.2V power supply. Experiments show 11.6x speedup on average compared to ARM9 with a vector-floating-point unit for integer-only benchmark programs as well as programs containing floating-point operations. Compared with other similar approaches including XPP and Butter, the proposed architecture shows much higher performance for integer applications, while maintaining about half the performance of Butter for floating-point applications. This thesis also proposes novel techniques to enhance utilization of integer units for high-throughput floating-point operations on CGRA. The approach to implementing floating-point operations on CGRA presented in this thesis enables floating-point functionality with less area overhead compared to the traditional approach of employing separate floating-point units (FPUs). However the total latency of a floating-point operation is larger than that of the traditional approach and the data dependency between split integer operations restricts further enhancement in terms of utilization of integer functional units in an operation. In order to overcome such inefficiency, two techniques are proposed in this thesis. One is overlapping two distinct floating-point operations, which increases the efficiency in terms of utilizations of integer functional units in the architecture. Free integer functional units in a floating-point operation can be used for another floating-point operation with this technique. The other is forwarding between two data-dependent floating-point operations, which decreases effective latency of the floating-point operations. The basic idea is to remove unnecessary calculations such as formatting which is normally done in between the two data-dependent floating-point operations. To implement the overlapping or forwarding, FSMs and control paths in each PE are modified and temporal/communication registers are added. Light-weight sub-module such as increment units and registers for intermediate values are added for releasing resource conflict. Experiment is done with several arithmetic functions that are widely used in floating-point applications. The base architecture and the new architecture implementing the proposed technique are compared in terms of throughput and area overhead. The experimental result shows that the proposed technique increases the throughput by 33.9% on average with 20.9% of area overhead.Abstract i Contents v List of Figures ix List of Tables xv Chapter 1 INTRODUCTION 1 Chapter 2 TARGET ARCHITECTURE 7 2.1 Overall Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Reconfigurable Computing Module . . . . . . . . . . . . . . . . . 8 Chapter 3 DEGISN OF FLOATING-POINT OPERATIONS 15 3.1 Floating-point Numbers . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1 Representation of floating-point numbers . . . . . . . . . . 15 3.1.2 Floating-point operations . . . . . . . . . . . . . . . . . . . 19 3.2 FPU-PE Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.1 Construction of FPU-PE Cluster . . . . . . . . . . . . . . . 20 3.2.2 Construction of Array of FPU-PE Clusters . . . . . . . . . 21 3.2.3 Comparing Different FPU-PE Clusters . . . . . . . . . . . 23 3.3 Implementation of Multi-Cycle Operations . . . . . . . . . . . . 26 3.4 Implementation of Floating-Point Operations . . . . . . . . . . . 30 3.5 Implementation of Floating-Point Operations Using Shared Modules . . . 32 Chapter 4 Chip Implementation 35 4.1 Specification of Chip Implementation . . . . . . . . . . . . . . . . 35 4.2 Experimental Setup . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3 Experimantal Results . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3.1 Performance Comparison . . . . . . . . . . . . . . . . . . . 39 4.3.2 Power Consumption Comparison . . . . . . . . . . . . . . 42 Chapter 5 Comparison with Other Architectures 45 5.1 Preparation for the comparison . . . . . . . . . . . . . . . . . . . 45 5.2 Comparison with PACT XPP . . . . . . . . . . . . . . . . . . . . . 47 5.3 Comparison with Butter Architecture . . . . . . . . . . . . . . . . 50 5.4 Implication of the proposed architecture . . . . . . . . . . . . . . 57 Chapter 6 Enhancement Techniques 63 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.2 Conventional Approach . . . . . . . . . . . . . . . . . . . . . . . 64 6.2.1 Base Architecture . . . . . . . . . . . . . . . . . . . . . . . 64 6.2.2 Utilization of Floating-Point Operations . . . . . . . . . . 65 6.3 Proposed Enhancement Techniques . . . . . . . . . . . . . . . . . 66 6.3.1 Overlapping Technique . . . . . . . . . . . . . . . . . . . . 66 6.3.2 Forwarding Technique . . . . . . . . . . . . . . . . . . . . . 71 6.4 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.4.1 Performance Comparison . . . . . . . . . . . . . . . . . . . 76 6.4.2 Hardware Cost of the Proposed Techniques . . . . . . . . . 77 6.4.3 Utilization Enhancement by the Proposed Techniques . . . 80 6.5 Comparison with Other Architecture . . . . . . . . . . . . . . . . 87 Chapter 7 Conclusion 93 Bibliography 95 ê”­ëŹžìŽˆëĄ 103 ê°ì‚Źì˜ Ꞁ 105Docto

    Predição de performance em ambientes multi-core com aceleradores compartilhados

    Get PDF
    Dois dos principais fatores do aumento da performance em aplicaçÔes single-thread – frequĂȘncia de operação e exploração do paralelismo Ă  nĂ­vel das instruçÔes – tiveram pouco avanço nos Ășltimos anos devido a restriçÔes de potĂȘncia. AlĂ©m disso, a exploração do paralelismo em nĂ­vel de threads Ă© limitada pelas porçÔes intrinsecamente sequenciais das aplicaçÔes. Neste contexto, Ă© cada vez mais comum a integração de aceleradores em arquiteturas multi-core. Esses sistemas exploram o que hĂĄ de vantajoso em cada um dos componentes que os compĂ”em: enquanto o arranjo multi-core explora o paralelismo em nĂ­vel de threads, aceleradores em hardware executam funçÔes com performance e eficiĂȘncia energĂ©tica ordens de grandeza maiores que uma possĂ­vel execução nos cores de propĂłsito geral. No atual estado da arte, poucos trabalhos propuseram mĂ©tricas que avaliam caracterĂ­sticas outras que nĂŁo a performance ou energia desses arranjos multi-core que compartilham aceleradores em hardware entre os elementos de processamento. Os MPSoCs, Multi-processor System-on-Chips, popularizaram a integração de aceleradores nessas arquiteturas, mas nenhum estudo foi realizado em termos da aceleração esperada com esses aceleradores, ou sobre o custo-benefĂ­cio esperado da adição de novos aceleradores nessas arquiteturas. A ausĂȘncia de mĂ©tricas que avaliem outras caracterĂ­sticas de arquiteturas multi-core heterogĂȘneas pode limitar severamente o seu potencial. Este trabalho tem por objetivo propor uma nova mĂ©trica para a integração de aceleradores compartilhados em arquiteturas multi-core, SACL (do inglĂȘs, Shared Accelerator Concurrency Level), descorrelacionada do paralelismo no nĂ­vel das threads. Esta mĂ©trica avalia o percentual de uma aplicação em que blocos bĂĄsicos acelerĂĄveis executam simultĂąneamente em diferentes threads ativas no contexto, competindo assim pelo uso do acelerador. A partir disto, o projetista pode usar o valor obtido para prever a aceleração esperada para uma determinada aplicação, e tambĂ©m estabelecer o custo-benefĂ­cio da adição (ou nĂŁo) de novos aceleradores no sistema. Essa mĂ©trica Ă© independente do acelerador, podendo ser utilizada tanto para aceleradores especĂ­ficos como reconfigurĂĄveis.Two of the major drivers of increased performance in single-thread applications - increase in operation frequency and exploitation of instruction-level parallelism - have had little advances in the last years due to power constraints. In addition, the intrinsic sequential portions of application limit exploitation of thread-level parallelism. In this context, it is increasingly common the integration of hardware accelerator in multi-core architectures. These systems are able to exploit the most advantageous features of each composing component: while the multi-core configuration exploits thread-level parallelism, hardware accelerators execute functions with increased performance and energy efficiency when comparing to execution in a general purpose processors. In the current state of art, very few works proposed metrics that evaluate characteristics other than performance or energy of these multi-core configurations that share hardware accelerators among processing elements. MPSoCs have popularized the integration of accelerators in these architectures, but there is no study realized in regard of expected speedup with these accelerators, or about the expected cost-benefit of the addition of more accelerators in these architectures. The absence of metrics that evaluate different characteristics of heterogeneous multi-core architectures may severely limit its potential. The goal of this work is to propose a new metric for the integration of shared hardware accelerators in multi-core architectures, SACL, uncorrelated to the thread-level parallelism (TLP). This metric evaluates the percentual of an application that accelerable basic blocks simultaneously execute in different active threads in the context, thus competing to use the accelerator. With this metric, a designer can use the obtained value to predict the expected speedup for a specific application, and to establish the cost-benefit of adding new accelerators to the system. The proposed metric is independent of the accelerator type, and it can be used with specific or reconfigurable accelerators

    Techniques d'exploration architecturale de design à usage spécifique pour l'accélération de boucles

    Get PDF
    RÉSUMÉ De nos jours, les industriels privilĂ©gient les architectures flexibles afin de rĂ©duire le temps et les coĂ»ts de conception d’un systĂšme. Les processeurs Ă  usage spĂ©cifique (ASIP) fournissent beaucoup de flexibilitĂ©, tout en atteignant des performances Ă©levĂ©es. Une tendance qui a de plus en plus de succĂšs dans le processus de conception d’un systĂšme sur puce consiste Ă  spĂ©cifier le comportement du systĂšme en langage Ă©voluĂ© tel que le C, SystemC, etc. La spĂ©cification est ensuite utilisĂ©e durant le partitionement pour dĂ©terminer les composantes logicielles et matĂ©rielles du systĂšme. Avec la maturitĂ© des gĂ©nĂ©rateurs automatiques de ASIP, les concepteurs peuvent rajouter dans leurs boĂźtes Ă  outils un nouveau type d’architecture, Ă  savoir les ASIP, en sachant que ces derniers sont conçus Ă  partir d’une spĂ©cification dĂ©crite en langage Ă©voluĂ©. D’un autre cĂŽtĂ©, dans le monde matĂ©riel, et cela depuis trĂšs longtemps, les chercheurs ont vu l’avantage de baser le processus de conception sur un langage Ă©voluĂ©. Cette recherche a abouti Ă  l’avĂ©nement de gĂ©nĂ©rateurs automatiques de matĂ©riel sur le marchĂ© qui sont des outils d’aide Ă  la conception comme CapatultC, Forte’s Cynthetizer, etc. Ainsi, avec tous ces outils basĂ©s sur le langage C, les concepteurs ont un choix de types de design Ă©largi mais, d’un autre cĂŽtĂ©, les options de designs possibles explosent, ce qui peut allonger au lieu de rĂ©duire le temps de conception. C’est dans ce cadre que notre thĂšse doctorale s’inscrit, puisqu’elle prĂ©sente des mĂ©thodologies d’exploration architecturale de design Ă  usage spĂ©cifique pour l’accĂ©lĂ©ration de boucles afin de rĂ©duire le temps de conception, entre autres. Cette thĂšse a dĂ©butĂ© par l’exploration de designs de ASIP. Les boucles de traitement sont de bonnes candidates Ă  l’accĂ©lĂ©ration, si elles comportent de bonnes possibilitĂ©s de parallĂ©lisme et si ces derniĂšres sont bien exploitĂ©es. Le matĂ©riel est trĂšs efficace Ă  profiter des possibilitĂ©s de parallĂ©lisme au niveau instruction, donc, une mĂ©thode de conception a Ă©tĂ© proposĂ©e. Cette derniĂšre extrait le parallĂ©lisme d’une boucle afin d’exĂ©cuter plus d’opĂ©rations concurrentes dans des instructions spĂ©cialisĂ©es. Notre mĂ©thode se base aussi sur l’optimisation des donnĂ©es dans l’architecture du processeur.---------- ABSTRACT Time to market is a very important concern in industry. That is why the industry always looks for new CAD tools that contribute to reducing design time. Application-specific instruction-set processors (ASIPs) provide flexibility and they allow reaching good performance if they are well designed. One trend that gains more and more success is C-based design that uses a high level language such as C, SystemC, etc. The C-based specification is used during the partitionning phase to determine the software and hardware components of the system. Since automatic processor generators are mature now, designers have a new type of tool they can rely on during architecture design. In the hardware world, high level synthesis was and is still a hot research topic. The advances in ESL lead to commercial high-level synthesis tools such as CapatultC, Forte’s Cynthetizer, etc. The designers have more tools in their box but they have more solutions to explore, thus their use can have a reverse effect since the design time can increase instead of being reduced. Our doctoral research tackles this issue by proposing new methodologies for design space exploration of application specific architecture for loop acceleration in order to reduce the design time while reaching some targeted performances. Our thesis starts with the exploration of ASIP design. We propose a method that targets loop acceleration with highly coupled specialized-instructions executing loop operations. Loops are good candidates for acceleration when the parallelism they offer is well exploited (if they have any parallelization opportunities). Hardware components such as specialized-instructions can leverage parallelization opportunities at low level. Thus, we propose to extract loop parallelization opportunities and to execute more concurrent operations in specialized-instructions. The main contribution of this method is a new approach to specialized-instruction (SI) design based on loop acceleration where loop optimization and transformation are done in SIs directly, instead of optimizing the software code. Another contribution is the design of tightly-coupled specialized-instructions associated with loops based on a 5-pattern representation

    Description and Specialization of Coarse-grained Reconfigurable Architectures

    Get PDF
    The functionality of electronic embedded systems, such as mobile phones and digital cameras, becomes more complex at each product generation. This increasing complexity implies great challenges at the design phase of these devices, as designers have to deal with high performance and low energy requirements at a low production budget. In the last years, coarse-grained, dynamically reconfigurable computer systems have increasingly gain in importance as an alternative to cope with these challenges because they provide an optimal trade-off between flexibility-after-production and performance. Like generic purpose processors, coarse-grained reconfigurable systems can be quickly reprogrammed to perform new tasks, but they keep their performance and energy consumption near to ASIC standards. The design of coarse-grained reconfigurable processors is the main theme in this work. In the first part of this dissertation, I present a new architecture description language that was designed for the description of coarse-grained, reconfigurable systems. This language allows an efficient specification of processor arrays and the description of scalable interconnection networks. The second part of this dissertation investigates the specialization of coarse-grained reconfigurable processors towards an application domain by using custom instruction sets. This work presents methods, techniques, and tools to recognize and extract clusters of operations from a set of application. These clusters serve as patterns for the design of an optimal custom instruction set. Experiments and results are presented, which analyze and assess the impact of custom instructions on coarse-grained processor arrays.Die FunktionalitĂ€t eingebetteter Systeme wie Mobiltelefone und digitale Foto-Kameras wird zunehmend umfangreicher und bĂŒrdet dem Entwurf dieser GerĂ€te hohe Herausforderungen auf, wie z.B. hohe AusfĂŒhrungsgeschwindigkeit, niedrige Herstellungskosten und geringeren Energieverbrauch. Um diese Herausforderungen zu bewĂ€ltigen, gewinnen grobgranulare dynamische rekonfigurierbare Rechnersysteme schnell an Bedeutung, denn sie bieten einen optimalen trade-off zwischen FlexibilitĂ€t nach der Herstellung und Performanz. Wie allgemeine Prozessoren, können grobgranulare rekonfigurierbare Systeme wĂ€hrend der AusfĂŒhrungszeit schnell umprogrammiert werden, um neue FunktionalitĂ€ten auszufĂŒhren, behalten aber immer noch eine ASIC-Ă€hnliche Performanz und Verlustleistungsverbrauch. Der Entwurf grobgranularer rekonfigurierbarer Bausteine ist das Thema dieser Dissertation. Im ersten Teil dieser Dissertation wird eine Sprache vorgestellt, die fĂŒr die Beschreibung grobgranularer rekonfigurierbarer Systeme entwickelt wurde. Diese Sprache ermöglicht eine effiziente Spezifikation von Prozessoren-Arrays und die Beschreibung skalierbarer Netzwerkverbindungen. Der zweite Teil untersucht die Anpassung grobgranularer rekonfigurierbarer Bausteine an AnwendungssĂ€tze mittels spezialisierter Befehle. Methoden werden vorgestellt zur Erkennung und Extraktion von Operationsmustern aus einem Anwendungssatz. Diese Operationsmuster dienen dann zum Entwurf eines optimalen spezialisierten Befehlsatzes. Als Ergebnisse werden die Wirkungen von spezialisierten BefehlsĂ€tzen in grobgranularen Arrays analysiert und bewertet
    corecore