Coram: an In-Fabric Memory Architecture for FPGA-Based Computing

Coram: an In-Fabric Memory Architecture for FPGA-Based Computing

CoRAM: An In-Fabric Memory Architecture for FPGA-based Computing Eric S. Chung, James C. Hoe, and Ken Mai Carnegie Mellon University 5000 Forbes Ave. Pittsburgh, PA 15213 {echung, jhoe, kenmai}@ece.cmu.edu ABSTRACT general-purpose processors. Among the computing alter- FPGAs have been used in many applications to achieve natives today, Field Programmable Gate Arrays (FPGA) orders-of-magnitude improvement in absolute performance have been applied to many applications to achieve orders-of- and energy efficiency relative to conventional microproces- magnitude improvement in absolute performance and energy sors. Despite their promise in both processing performance efficiency relative to conventional microprocessors (e.g., [11, and efficiency, FPGAs have not yet gained widespread ac- 6, 5]). A recent study [6] further showed that FPGA fabrics ceptance as mainstream computing devices. A fundamental can be an effective computing substrate for floating-point obstacle to FPGA-based computing today is the FPGA’s intensive numerical applications. lack of a common, scalable memory architecture. When de- While the accumulated VLSI advances have steadily im- veloping applications for FPGAs, designers are often directly proved the FPGA fabric’s processing capability, FPGAs responsible for crafting the application-specific infrastruc- have not yet gained widespread acceptance as mainstream ture logic that manages and transports data to and from the computing devices. A commonly cited obstacle is the diffi- processing kernels. This infrastructure not only increases culty in programming FPGAs using low-level hardware de- design time and effort but will frequently lock a design to velopment flows. A fundamental problem lies in the FPGA’s a particular FPGA product line, hindering scalability and lack of a common, scalable memory architecture for appli- portability. We propose a new FPGA memory architecture cation designers. When developing for an FPGA, a designer called Connected RAM (CoRAM) to serve as a portable has to create from bare fabric not only the application kernel bridge between the distributed computation kernels and the itself but also the application-specific infrastructure logic to external memory interfaces. In addition to improving per- support and optimize the transfer of data to and from ex- formance and efficiency, the CoRAM architecture provides ternal memory interfaces. Very often, creating or using this a virtualized memory environment as seen by the hardware infrastructure logic not only increases design time and ef- kernels to simplify development and to improve an applica- fort but will frequently lock a design to a particular FPGA tion’s portability and scalability. product line, hindering scalability and portability. Further, the support mechanisms which users are directly responsi- ble for will be increasingly difficult to manage in the future Categories and Subject Descriptors as: (1) memory resources (both on- and off-chip) increase in C.0 [Computer System Organization]: [System archi- number and become more distributed across the fabric, and tectures] (2) long-distance interconnect delays become more difficult to tolerate in larger fabric designs. General Terms Current FPGAs lack essential abstractions that one comes to expect in a general purpose computer—i.e., an Instruc- Design, standardization tion Set Architecture (ISA) that defines a standard agree- ment between hardware and software. From a computing Keywords perspective, a common architectural definition is a critical FPGA, abstraction, memory, reconfigurable computing ingredient for programmability and for application portabil- ity. To specifically address the challenges related to mem- 1. INTRODUCTION ory on FPGAs, the central goal of this work is to create a shared, scalable memory architecture suitable for future With power becoming a first-class architectural con- FPGA-based computing devices. Such a memory architec- straint, future computing devices will need to look beyond ture would be used in a way that is analogous to how general purpose programs universally access main memory through Permission to make digital or hard copies of all or part of this work for standard“loads”and“stores”as defined by an ISA—without personal or classroom use is granted without fee provided that copies are any knowledge of hierarchy details such as caches, memory not made or distributed for profit or commercial advantage and that copies controllers, etc. At the same time, the FPGA memory ar- bear this notice and the full citation on the first page. To copy otherwise, to chitecture definition cannot simply adopt what exists for republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. general purpose processors and instead, should reflect the FPGA’11, February 27–March 1, 2011, Monterey, California, USA. spatially distributed nature of today’s FPGAs—consisting Copyright 2011 ACM 978-1-4503-0554-9/11/02 ...$10.00. (e) Core Core CPU CPU FPGA FPGA Channels L1 L1 Memory Interconnect L2 Cache DRAM DRAM Single-Chip Heterogeneous Processor CoRAM Reconfigurable (a) (b) Logic x CoRAM x x x Figure 1: Assumed System Context. y y x x y x x y Edge of up to millions of interconnected LUTs and thousands of Memory LocalAddress embedded SRAMs [24]. Working under the above premises, WrData the guiding principles for the desired FPGA memory archi- RdData CoRAM tecture are: Control threads (a) (b) (c) (d) • The architecture should present to the user a common, virtualized appearance of the FPGA fabric, which en- Figure 2: CoRAM Memory Architecture. compasses reconfigurable logic, its external memory in- terfaces, and the multitude of SRAMs—while freeing de- and initializing the memory contents of an application prior signers from details irrelevant to the application itself. to its execution on the FPGA. • The architecture should provide a standard, easy-to-use 2.2 Architectural Overview mechanism for controlling the transport of data between memory interfaces and the SRAMs used by the applica- Within the boundaries of reconfigurable logic, the CoRAM tion throughout the course of computation. architecture defines a portable application environment that enforces a separation of concerns between computation and • The abstraction should be amenable to scalable FPGA on-chip memory management. Figure 2 offers a conceptual microarchitectures without affecting the architectural view view of how applications are decomposed when mapped into presented to existing applications. reconfigurable logic with CoRAM support. The reconfig- Outline. Section 2 presents an overview of the CoRAM urable logic component shown in Figure 2a is a collection memory architecture. Section 3 discusses a possible mi- of LUT-based resources used to host the algorithmic ker- croarchitectural space for implementing CoRAM. Section 4 nels of a user application. It is important to note that the demonstrates concrete usage of CoRAM for three exam- CoRAM architecture places no restriction on the synthesis ple application kernels—Black-Scholes, Matrix-Matrix Mul- language used or the internal complexity of the user ap- tiplication and Sparse Matrix-Vector Multiplication. Sec- plication. For portability reasons, the only requirement is tion 5 presents an evaluation of various microarchitectural that user logic is never permitted to directly interface with approaches. We discuss related work in Section 6 and offer off-chip I/O pins, access memory interfaces, or be aware of conclusions in Section 7. platform-specific details. Instead, applications can only in- teract with the external environment through a collection of specialized, distributed SRAMs called CoRAMs that pro- 2. CORAM ARCHITECTURE vide on-chip storage for application data (see Figure 2b). 2.1 System Context CoRAMs. Much like current FPGA memory architectures, CoRAMs preserve the desirable characteristics of conven- The CoRAM memory architecture assumes the co-existence tional fabric-embedded SRAM [16]—they present a simple, of FPGA-based computing devices along with general- wire-level SRAM interface to the user logic with local ad- purpose processors in the context of a shared memory mul- dress spaces and deterministic access times (see Figure 2b), tiprocessor system (see Figure 1). The CoRAM architec- are spatially distributed, and provide high aggregate on-chip ture assumes that reconfigurable logic resources will exist bandwidth. They can be further composed and configured either as stand-alone FPGAs on a multiprocessor memory with flexible aspect ratios. CoRAMs, however, deviate dras- bus or integrated as fabric into a single-chip heterogeneous tically from conventional embedded SRAMs in the sense multicore. Regardless of the configuration, it is assumed that the data contents of individual CoRAMs are actively that memory interfaces for loading from and storing to a managed by finite state machines called“control threads”as linear address space will exist at the boundaries of the re- shown in Figure 2c. configurable logic (referred to as edge memory in this paper). These implementation-specific edge memory interfaces could Control threads. Control threads form a distributed col- be realized as dedicated memory/bus controllers or even co- lection of logical, asynchronous finite state machines for me- herent cache interfaces. Like commercial systems available diating data transfers between CoRAMs and the edge mem- today (e.g., Convey Computer [8]), reconfigurable logic de- ory interface. Each CoRAM is managed by at most a single vices can directly access the

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    54 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us