EDBT 2026 Demo / reviewers in the wild / expert
Kermin Fleming
dblp:24/4815 · also Kermin Elliott Fleming
· DBLP profile ↗
24ranked-venue papers
5as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 16 · 2 first-authorSoftware engineering, systems software and programming languages · 5 · 3 first-authorTheory of computation · 4 · 2 first-authorComputer networks · 3
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
9 papers |
Reconfigurable computing and FPGAs · 40% Memory systems · 17% Electronic design automation · 13% | |
| Software engineering, system software, and programming languages
4 papers |
Compilers and program optimization · 94% Operating systems · 6% | |
| Theoretical computer science
1 paper |
Coding theory · 100% |
Topics — the 21 heaviest of 27, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Reconfigurable computing and FPGAs
FPGA accelerator |
0.8 | 3 | 2017 | Custom Multicache Architectures for Heap Manipulating Programs · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2017 A Study of Pointer-Chasing Performance on Shared-Memory Processor-FPGA Systems · FPGA 2016 MATCHUP: Memory Abstractions for Heap Manipulating Programs · FPGA 2015 |
Electronic design automation
high-level synthesis |
0.6 | 3 | 2017 | Custom Multicache Architectures for Heap Manipulating Programs · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2017 MATCHUP: Memory Abstractions for Heap Manipulating Programs · FPGA 2015 Automatic Construction of Program-Optimized FPGA Memory Networks · FPGA 2017 |
Reconfigurable computing and FPGAs
FPGA memory architecture |
0.5 | 2 | 2017 | Automatic Construction of Program-Optimized FPGA Memory Networks · FPGA 2017 LMC: Automatic Resource-Aware Program-Optimized Memory Partitioning · FPGA 2016 |
Memory systems
cache design |
0.4 | 2 | 2017 | Custom Multicache Architectures for Heap Manipulating Programs · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2017 LMC: Automatic Resource-Aware Program-Optimized Memory Partitioning · FPGA 2016 |
Compilers and program optimization
memory optimization |
0.3 | 1 | 2017 | Automatic Construction of Program-Optimized FPGA Memory Networks · FPGA 2017 |
Compilers and program optimization › compiler optimization
memory partitioning |
0.2 | 1 | 2016 | LMC: Automatic Resource-Aware Program-Optimized Memory Partitioning · FPGA 2016 |
Reconfigurable computing and FPGAs
coarse-grained reconfigurable architecture |
0.2 | 1 | 2015 | Efficient Control and Communication Paradigms for Coarse-Grained Spatial Architectures · ACM Trans. Comput. Syst. 2015 |
Memory systems
on-chip memory |
0.2 | 1 | 2015 | MATCHUP: Memory Abstractions for Heap Manipulating Programs · FPGA 2015 |
Hardware accelerators and domain-specific architectures
spatial architecture |
0.2 | 1 | 2015 | Efficient Control and Communication Paradigms for Coarse-Grained Spatial Architectures · ACM Trans. Comput. Syst. 2015 |
Storage systems › flash and SSD › flash memory
flash storage |
0.2 | 1 | 2014 | Scalable multi-access flash store for big data analytics · FPGA 2014 |
Reconfigurable computing and FPGAs › FPGA partitioning
multi-FPGA partitioning |
0.1 | 1 | 2012 | Leveraging latency-insensitivity to ease multiple FPGA design · FPGA 2012 |
Coding theory › error-correcting codes
rateless codes |
0.1 | 1 | 2012 | Spinal codes · SIGCOMM 2012 |
Coding theory › error-correcting codes › rateless codes
spinal codes |
0.1 | 1 | 2012 | Spinal codes · SIGCOMM 2012 |
Memory systems
cache management |
0.1 | 1 | 2011 | Leap scratchpads: automatic memory and cache management for reconfigurable logic · FPGA 2011 |
Memory systems
shared memory |
0.1 | 1 | 2016 | A Study of Pointer-Chasing Performance on Shared-Memory Processor-FPGA Systems · FPGA 2016 |
Performance modeling and evaluation
workload characterization |
0.1 | 1 | 2016 | A Study of Pointer-Chasing Performance on Shared-Memory Processor-FPGA Systems · FPGA 2016 |
Parallel and multicore computing
pipeline parallelism |
0.1 | 1 | 2015 | Efficient Control and Communication Paradigms for Coarse-Grained Spatial Architectures · ACM Trans. Comput. Syst. 2015 |
Physical-layer communications
channel coding |
0.0 | 1 | 2012 | Spinal codes · SIGCOMM 2012 |
Physical-layer communications › channel coding › decoding algorithms
maximum-likelihood decoding |
0.0 | 1 | 2012 | Spinal codes · SIGCOMM 2012 |
Physical-layer communications › channel modeling
time-varying channels |
0.0 | 1 | 2012 | Spinal codes · SIGCOMM 2012 |
Operating systems › resource management › memory management
virtual memory |
0.0 | 1 | 2011 | Leap scratchpads: automatic memory and cache management for reconfigurable logic · FPGA 2011 |
Methods — techniques the papers use, named apart from their topics
resource-aware compilation · 0.5pointer analysis · 0.4parallelization · 0.4high-level synthesis · 0.4approximate maximum-likelihood decoding · 0.3FPGA prototyping · 0.3program analysis · 0.3performance estimation · 0.3processor assistance · 0.2linked-list traversal · 0.2latency-insensitive channels · 0.2chip-to-chip backplane networking · 0.2virtual memory · 0.1scratchpad memory · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Automatic Construction of Program-Optimized FPGA Memory Networks
Hsin-Jung Yang, Kermin Fleming, Felix Winterstein, Annie I. Chen, Michael Adler, Joel S. Emer |
FPGA | 2 |
| 2017 | Custom Multicache Architectures for Heap Manipulating ProgramsabstractMemory-intensive implementations often require access to an external, off-chip memory which can substantially slow down an field-programmable gate array accelerator due to memory bandwidth limitations. Buffering frequently reused data on chip is a common approach to address this problem and the optimization of the cache architecture introduces yet another complex design space. This paper presents a high-level synthesis (HLS) design aid that automatically generates parallel multicache systems which are tailored to the specific requirements of the application. Our program analysis identifies nonoverlapping memory regions, supported by private caches, and regions which are shared by parallel units after parallelization, which are supported by coherent caches and synchronization primitives. It also decides whether the parallelization is legal with respect to data dependencies. The novelty of this paper is the focus on programs using dynamically allocated, pointer-based data structures which, while common in software engineering, remain difficult to analyze and are beyond the scope of the overwhelming majority of HLS techniques to date. Second, we devise a high-level cache performance estimation to find a heterogeneous configuration of cache sizes that maximizes the performance of the multicache system subject to an on-chip memory resource constraint. We demonstrate our technique with three case studies of applications using dynamic data structures and use Xilinx Vivado HLS as an exemplary HLS tool. We show up to 15× speedup after parallelization of the HLS implementations and the insertion of the application-specific distributed hybrid multicache architecture. Felix Winterstein, Kermin Fleming, Hsin-Jung Yang, George A. Constantinides |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 2 |
| 2017 | (FPL 2015) Scavenger: Automating the Construction of Application-Optimized Memory HierarchiesabstractHigh-level abstractions separate algorithm design from platform implementation, allowing programmers to focus on algorithms while building complex systems. This separation also provides system programmers and compilers an opportunity to optimize platform services on an application-by-application basis. In field-programmable gate arrays (FPGAs), platform-level malleability extends to the memory system: Unlike general-purpose processors, in which memory hardware is fixed at design time, the capacity, associativity, and topology of FPGA memory systems may all be tuned to improve application performance. Since application kernels may only explicitly use few memory resources, substantial memory capacity may be available to the platform for use on behalf of the user program. In this work, we present Scavenger, which utilizes spare resources to construct program-optimized memories, and we also perform an initial exploration of methods for automating the construction of these application-specific memory hierarchies. Although exploiting spare resources can be beneficial, naïvely consuming all memory resources may cause frequency degradation. To relieve timing pressure in large block RAM (BRAM) structures, we provide microarchitectural techniques to trade memory latency for design frequency. We demonstrate, by examining a set of benchmarks, that our scalable cache microarchitecture achieves performance gains of 7% to 74% (with a 26% geometric mean on average) over the baseline cache microarchitecture when scaling the size of first-level caches to the maximum. Hsin-Jung Yang, Kermin Fleming, Felix Winterstein, Michael Adler, Joel S. Emer |
ACM Trans. Reconfigurable Technol. Syst. | 2 |
| 2016 | A Study of Pointer-Chasing Performance on Shared-Memory Processor-FPGA SystemsabstractThe advent of FPGA acceleration platforms with direct coherent access to processor memory creates an opportunity for accelerating applications with irregular parallelism governed by large in-memory pointer-based data structures. This paper uses the simple reference behavior of a linked-list traversal as a proxy to study the performance potentials of accelerating these applications on shared-memory processor-FPGA systems. The linked-list traversal is parameterized by node layout in memory, per-node data payload size, payload dependence, and traversal concurrency to capture the main performance effects of different pointer-based data structures and algorithms. The paper explores the trade-offs over a wide range of implementation options available on shared-memory processor-FPGA architectures, including using tightly-coupled processor assistance. We make observations of the key effects on currently available systems including the Xilinx Zynq, the Intel QuickAssist QPI FPGA Platform, and the Convey HC-2. The key results show: (1) the FPGA fabric is least efficient when traversing a single list with non-sequential node layout and a small payload size; (2) processor assistance can help alleviate this shortcoming; and (3) when appropriate, a fabric only approach that interleaves multiple linked list traversals is an effective way to maximize traversal performance. Gabriel Weisz, Joseph Melber, Yu Wang 0110, Kermin Fleming, Eriko Nurvitadhi, James C. Hoe |
FPGA | 4 |
| 2016 | LMC: Automatic Resource-Aware Program-Optimized Memory PartitioningabstractAs FPGAs have grown in size and capacity, FPGA memory systems have become both richer and more diverse in order to support the increased computational capacity of FPGA fabrics. Using these resources, and using them well, has become commensurately more difficult, especially in the context of legacy designs ported from smaller, simpler FPGA systems. This growing complexity necessitates resource-aware compilers that can make good use of memory resources on behalf of the programmer. In this work, we introduce the LEAP Memory Compiler (LMC), which can synthesize application-optimized cache networks for systems with multiple memory resources, enabling user programs to automatically take advantage of the expanded memory capabilities of modern FPGA systems. In our experiments, the optimized cache network achieves up to 49% performance gains for throughput-oriented applications and 15% performance gains for latency-oriented applications, while increasing design area by less than 6% of the total chip area. Hsin-Jung Yang, Kermin Fleming, Michael Adler, Felix Winterstein, Joel S. Emer |
FPGA | 2 |
| 2015 | MATCHUP: Memory Abstractions for Heap Manipulating ProgramsabstractMemory-intensive implementations often require access to an external, off-chip memory which can substantially slow down an FPGA accelerator due to memory bandwidth limitations. Buffering frequently reused data on chip is a common approach to address this problem and the optimization of the cache architecture introduces yet another complex design space. This paper presents a high-level synthesis (HLS) design aid that generates parallel application-specific multi-scratchpad architectures including on-chip caches. Our program analysis identifies non-overlapping memory regions, supported by private scratchpads, and regions which are shared by parallel units after parallelization and which are supported by coherent scratchpads and synchronization primitives. It also decides whether the parallelization is legal with respect to data dependencies. The novelty of this work is the focus on programs using dynamic, pointer-based data structures and dynamic memory allocation which, while common in software engineering, remain difficult to analyze and are beyond the scope of the overwhelming majority of HLS techniques to date. We demonstrate our technique with three case studies of applications using dynamically allocated data structures and use Xilinx Vivado HLS as an exemplary HLS tool. We show up to 10x speed-up after parallelization of the HLS implementations and the insertion of the application-specific distributed hybrid scratchpad architecture. Felix Winterstein, Kermin Fleming, Hsin-Jung Yang, Samuel Bayliss, George A. Constantinides |
FPGA | 2 |
| 2015 | Scavenger: Automating the construction of application-optimized memory hierarchiesabstractHigh-level abstractions separate algorithm design from platform implementation, allowing programmers to focus on algorithms while building increasingly complex systems. This separation also provides system programmers and compilers an opportunity to optimize platform services for each application. In FPGAs, this platform-level malleability extends to the memory system: unlike general-purpose processors, in which memory hardware is fixed at design time, the capacity, associativity, and topology of FPGA memory systems may all be tuned to improve application performance. Since application kernels often use few memory resources, substantial memory capacity may be available to the platform for use on behalf of the user program. In this work, we perform an initial exploration of methods for automating the construction of these application-specific memory hierarchies. Although exploiting spare resources can be beneficial, naïvely consuming all memory resources may cause frequency degradation. To relieve timing pressure in large BRAM structures, we provide microarchitectural techniques to trade memory latency for design frequency. We demonstrate, by examining both hand-assembled and HLS-compiled benchmarks, that our application-optimized memory system can improve pre-existing application runtime by 25% on average. Hsin-Jung Yang, Kermin Fleming, Michael Adler, Felix Winterstein, Joel S. Emer |
FPL | 2 |
| 2015 | Custom-sized caches in application-specific memory hierarchiesabstractDeveloping FPGA implementations with an input specification in a high-level programming language such as C/C++ or OpenCL allows for a substantially shortened design cycle compared to a design entry at register transfer level. This work targets high-level synthesis (HLS) implementations that process large amounts of data and therefore require access to an off-chip memory. We leverage the customizability of the FPGA on-chip memory to automatically construct a multi-cache architecture in order to enhance the performance of the interface between parallel functional units of the HLS core and an external memory. Our focus is on automatic cache sizing. Firstly, our technique determines and uses up unused left-over block RAM resources for the construction of on-chip caches. Secondly, we devise a high-level cache performance estimation based on the memory access trace of the program. We use this memory trace to find a heterogeneous configuration of cache sizes, tailored to the application's memory access characteristic, that maximizes the performance of the multi-cache system subject to an on-chip memory resource constraint. We evaluate our technique with three benchmark implementations on an FPGA board and obtain a reduction in execution latency of up to 2× (1.5× on average) when compared to a one-size-fits-all cache sizing. We also quantify the impact of our automatically generated cache system on the overall energy consumption of the implementation. Felix Winterstein, Kermin Fleming, Hsin-Jung Yang, John Wickerson, George A. Constantinides |
FPT | 2 |
| 2015 | Efficient Control and Communication Paradigms for Coarse-Grained Spatial ArchitecturesabstractThere has been recent interest in exploring the acceleration of nonvectorizable workloads with spatially programmed architectures that are designed to efficiently exploit pipeline parallelism. Such an architecture faces two main problems: how to efficiently control each processing element (PE) in the system, and how to facilitate inter-PE communication without the overheads of traditional shared-memory coherent memory. In this article, we explore solving these problems using triggered instructions and latency-insensitive channels. Triggered instructions completely eliminate the program counter (PC) and allow programs to transition concisely between states without explicit branch instructions. Latency-insensitive channels allow efficient communication of inter-PE control information while simultaneously enabling flexible code placement and improving tolerance for variable events such as cache accesses. Together, these approaches provide a unified mechanism to avoid overserialized execution, essentially achieving the effect of techniques such as dynamic instruction reordering and multithreading. Our analysis shows that a spatial accelerator using triggered instructions and latency-insensitive channels can achieve 8 × greater area-normalized performance than a traditional general-purpose processor. Further analysis shows that triggered control reduces the number of static and dynamic instructions in the critical paths by 62% and 64%, respectively, over a PC-style baseline, increasing the performance of the spatial programming approach by 2.0 ×. Michael Pellauer, Angshuman Parashar, Michael Adler, Bushra Ahsan, Randy L. Allmon, Neal Clayton Crago, Kermin Fleming, Mohit Gambhir, Aamer Jaleel, Tushar Krishna, Daniel Lustig, Stephen Maresh, Vladimir Pavlov, Rachid Rayess, Antonia Zhai, Joel S. Emer |
ACM Trans. Comput. Syst. | 7 |
| 2014 | LEAP Shared Memories: Automating the Construction of FPGA Coherent MemoriesabstractParallel programming has been widely used in many scientific and technical areas to solve large problems. While general-purpose processors have rich infrastructure to support parallel programming on shared memory, such as coherent caches and synchronization libraries, parallel programming infrastructure for FPGAs is limited. Thus, development of FPGA-based parallel algorithms remains difficult. In this work, we seek to simplify parallel programming on FPGAs. We provide a set of easy-to-use declarative primitives to maintain coherency and consistency of accesses to shared memory resources. We propose a shared-memory service that automatically manages coherent caches on multiple FPGAs. Experimental results of a 2-dimensional heat transfer equation show that the shared memory service with our distributed coherent caches outperforms a centralized cache by 2.6x. To handle synchronization, we provide new lock and barrier primitives that leverage native FPGA communication capabilities and outperform traditional through-memory primitives by 1.8x. Hsin-Jung Yang, Kermin Fleming, Michael Adler, Joel S. Emer |
FCCM | 2 |
| 2014 | Scalable multi-access flash store for big data analyticsabstractFor many "Big Data" applications, the limiting factor in performance is often the transportation of large amount of data from hard disks to where it can be processed, i.e. DRAM. In this paper we examine an architecture for a scalable distributed flash store which aims to overcome this limitation in two ways. First, the architecture provides a high-performance, high-capacity, scalable random-access storage. It achieves high-throughput by sharing large numbers of flash chips across a low-latency, chip-to-chip backplane network managed by the flash controllers. The additional latency for remote data access via this network is negligible as compared to flash access time. Second, it permits some computation near the data via a FPGA-based programmable flash controller. The controller is located in the datapath between the storage and the host, and provides hardware acceleration for applications without any additional latency. We have constructed a small-scale prototype whose network bandwidth scales directly with the number of nodes, and where average latency for user software to access flash store is less than 70mus, including 3.5mus of network overhead. Sang Woo Jun, Kermin Fleming, Arvind 0001 |
FPGA | 3 |
| 2014 | The LEAP FPGA operating systemabstractFPGAs offer attractive power and performance for many applications, especially relative to traditional sequential architectures. In spite of these advantages, FPGAs have been deployed in only a few, niche domains.We argue that the difficulty of programming FPGAs all but precludes their use in more general systems: FPGA programmers are currently exposed to all the gory system details that software operating systems long ago abstracted away. In this work, we present the Latency-insensitive Environment for Application Programming (LEAP), an FPGA operating system built around latency-insensitive communications channels. LEAP alleviates the FPGA programming problem by providing a rich set of portable latency-insensitive abstraction layers for program development. Unlike software operating systems services, which are generally dynamic, the nature of FPGAs requires that many configuration decisions be made at compile time. We present an extensible interface for compile-time management of resources. We demonstrate that LEAP provides design portability, while consuming as little as 3% of FPGA area, by mapping several designs on to various FPGA platforms. Kermin Fleming, Hsin-Jung Yang, Michael Adler, Joel S. Emer |
FPL | 1 |
| 2013 | Optimizing under abstraction: Using prefetching to improve FPGA performanceabstractIn an effort to speed the development of FPGA-based accelerators, recent research has focused on providing FPGA developers with memory and communications abstractions. Because abstraction decouples the function of these interfaces from their implementation, these new interfaces present an enormous opportunity for optimization. In this paper we examine stride prefetching as a means of improving the performance of an automatically synthesized, abstract memory hierarchy. We demonstrate, by applying our technique to several large benchmarks, that prefetching can improve preexisting application runtime by 15% on average, and up to 40%, without requiring program modification. Hsin-Jung Yang, Kermin Fleming, Michael Adler, Joel S. Emer |
FPL | 2 |
| 2012 | A hardware spinal decoderabstractSpinal codes are a recently proposed capacity-achieving rateless code. While hardware encoding of spinal codes is straightforward, the design of an efficient, high-speed hardware decoder poses significant challenges. We present the first such decoder. By relaxing data dependencies inherent in the classic M-algorithm decoder, we obtain area and throughput competitive with 3GPP turbo codes as well as greatly reduced latency and complexity. The enabling architectural feature is a novel alpha-beta incremental approximate selection algorithm. We also present a method for obtaining hints which anticipate successful or failed decoding, permitting early termination and/or feedback-driven adaptation of the decoding parameters. Peter Iannucci, Kermin Fleming, Jonathan Perry 0001, Hari Balakrishnan, Devavrat Shah |
ANCS | 2 |
| 2012 | Leveraging latency-insensitivity to ease multiple FPGA designabstractTraditionally, hardware designs partitioned across multiple FPGAs have had low performance due to the inefficiency of maintaining cycle-by-cycle timing among discrete FPGAs. In this paper, we present a mechanism by which complex designs may be efficiently and automatically partitioned among multiple FPGAs using explicitly programmed latency-insensitive links. We describe the automatic synthesis of an area efficient, high performance network for routing these inter-FPGA links. By mapping a diverse set of large research prototypes onto a multiple FPGA platform, we demonstrate that our tool obtains significant gains in design feasibility, compilation time, and even wall-clock performance. Kermin Fleming, Michael Adler, Michael Pellauer, Angshuman Parashar, Arvind 0001, Joel S. Emer |
FPGA | 1 |
| 2012 | ZIP-IO: Architecture for application-specific compression of Big DataabstractWe have entered the “Big Data” age: scaling of networks and sensors has led to exponentially increasing amounts of data. Compression is an effective way to deal with many of these large data sets, and application-specific compression algorithms have become popular in problems with large working sets. Unfortunately, these compression algorithms are often computationally difficult and can result in application-level slow-down when implemented in software. To address this issue, we investigate ZIP-IO, a framework for FPGA-accelerated compression. Using this system we demonstrate that an unmodified industrial software workload can be accelerated 3x while simultaneously achieving more than 1000x compression in its data set. Sang Woo Jun, Kermin Fleming, Michael Adler, Joel S. Emer |
FPT | 2 |
| 2012 | Spinal codesabstractSpinal codes are a new class of rateless codes that enable wireless networks to cope with time-varying channel conditions in a natural way, without requiring any explicit bit rate selection. The key idea in the code is the sequential application of a pseudo-random hash function to the message bits to produce a sequence of coded symbols for transmission. This encoding ensures that two input messages that differ in even one bit lead to very different coded sequences after the point at which they differ, providing good resilience to noise and bit errors. To decode spinal codes, this paper develops an approximate maximum-likelihood decoder, called the bubble decoder, which runs in time polynomial in the message size and achieves the Shannon capacity over both additive white Gaussian noise (AWGN) and binary symmetric channel (BSC) models. Experimental results obtained from a software implementation of a linear-time decoder show that spinal codes achieve higher throughput than fixed-rate LDPC codes, rateless Raptor codes, and the layered rateless coding approach of Strider, across a range of channel conditions and message sizes. An early hardware prototype that can decode at 10 Mbits/s in FPGA demonstrates that spinal codes are a practical construction. Jonathan Perry 0001, Peter Iannucci, Kermin Fleming, Hari Balakrishnan, Devavrat Shah |
SIGCOMM | 3 |
| 2011 | Leap scratchpads: automatic memory and cache management for reconfigurable logicabstractDevelopers accelerating applications on FPGAs or other reconfigurable logic have nothing but raw memory devices in their standard toolkits. Each project typically includes tedious development of single-use memory management. Software developers expect a programming environment to include automatic memory management. Virtual memory provides the illusion of very large arrays and processor caches reduce access latency without explicit programmer instructions. Michael Adler, Kermin Fleming, Angshuman Parashar, Michael Pellauer, Joel S. Emer |
FPGA | 2 |
| 2011 | WiLIS: Architectural modeling of wireless systemsabstractThe performance of a wireless system depends on the wireless channel as well as the algorithms used in the transceiver pipelines. Because physical phenomena affect transceiver pipelines in difficult to predict ways, detailed simulation of the entire transceiver system is needed to evaluate even a single processing block. Further, some protocol validations require simulation of rare events (say, 1 bit error in 109bits), which means the protocol must simulate for a long enough time for such events to materialize. This requirement coupled with the heavy computation typical of most physical-layer processing, rules out pure software solutions. In this paper we describe WiLIS, an FPGA-based hybrid hardware-software system designed to facilitate the development of wireless protocols. We then use WiLIS to evaluate several microarchitectures for measuring very low bit-error rates (BER). We demonstrate, for the first time, that the recently proposed SoftPHY can be implemented efficiently in hardware. Kermin Fleming, Man Cheuk Ng, Samuel Gross, Arvind 0001 |
ISPASS | 1 |
| 2010 | Airblue: a system for cross-layer wireless protocol developmentabstractOver the past few years, researchers have developed many cross-layer wireless protocols to improve the performance of wireless networks. Experimental evaluations of these protocols have been carried out mostly using software-defined radios, which are typically two to three orders of magnitude slower than commodity hardware. FPGA-based platforms provide much better speeds but are quite difficult to modify because of the way high-speed designs are typically implemented. Experimenting with cross-layer protocols requires a flexible way to convey information beyond the data itself from lower to higher layers, and a way for higher layers to configure lower layers dynamically and within some latency bounds. One also needs to be able to modify a layer's processing pipeline without triggering a cascade of changes. We have developed Airblue, an FPGA-based software radio platform, that has all these properties and runs at speeds comparable to commodity hardware. We discuss the design philosophy underlying Airblue that makes it relatively easy to modify it, and present early experimental results. Man Cheuk Ng, Kermin Fleming, Mythili Vutukuru, Samuel Gross, Arvind 0001, Hari Balakrishnan |
ANCS | 2 |
| 2009 | Implementing a fast cartesian-polar matrix interpolatorabstractThe 2009 MEMOCODE Hardware/Software Co-Design Contest assignment was the implementation of a cartesian-to-polar matrix interpolator. We discuss our hardware and software design submissions. Abhinav Agarwal, Nirav Dave, Kermin Fleming, Asif Khan 0005, Myron King, Man Cheuk Ng, Muralidaran Vijayaraghavan |
MEMOCODE | 3 |
| 2008 | High-throughput Pipelined MergesortabstractWe present an implementation of a high-throughput cryptosorter, capable of sorting an encrypted database of eight megabytes in .15 seconds; 1102 times faster than a software implementation. Kermin Fleming, Myron King, Man Cheuk Ng, Asif Khan 0005, Muralidaran Vijayaraghavan |
MEMOCODE | 1 |
| 2008 | H.264 Decoder: A Case Study in Multiple Design PointsabstractH.264, a state-of-the-art video compression standard, is used across a range of products from cellphones to HDTV. These products have vastly different performance, power and cost requirements, necessitating different hardware-software solutions for H.264 decoding. We show that a design methodology and associated tools which support synthesis from high-level descriptions and which allow modular refinement throughout the design cycle, can share the majority of design effort across multiple design points. Using Bluespec SystemVerilog, we have created a variety of designs for the H.264 decoder tuned to support decoding at resolutions ranging from QCIF video (176 times 144 @ 15 frames/second) to 1080p video ((1280 times 1080)p @60 frames/second) in a 180 nm process. Some of these design points require major transformations of pipelining to increase performance or to reduce area. We also explore several common design issues surrounding memory structures, such as caches and on-chip vs. off-chip memories. We believe the design methodology used in this paper is directly applicable to many IP blocks involving algorithmic specifications. The same design capabilities also permit rapid microarchitecture exploration and changes in RTL late in the design process even in non-algorithmic IP blocks. Kermin Fleming, Chun-Chieh Lin, Nirav Dave, Arvind 0001, Gopal Raghavan, Jamey Hicks |
MEMOCODE | 1 |
| 2007 | Hardware Acceleration of Matrix Multiplication on a Xilinx FPGAabstractThe first MEMOCODE hardware/software co-design contest posed the following problem: optimize matrix-matrix multiplication in such a way that it is split between the FPGA and PowerPC on a Xilinx Virtex IIPro30. In this paper we discuss our solution, which we implemented on a Xilinx XUP development board with 256 MB of DRAM. The design was done by the five authors over a span of approximately 3 weeks, though of the 15 possible man-weeks, about 9 were actually spent working on this problem. All hardware design was done using Blue-spec SystemVerilog (BSV), with the exception of an imported Verilog multiplication unit, necessary only due to the limitations of the Xilinx FPGA toolflow optimizations. Nirav Dave, Kermin Fleming, Myron King, Michael Pellauer, Muralidaran Vijayaraghavan |
MEMOCODE | 2 |