Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Ronald D. Barnes

dblp:77/1584 · DBLP profile ↗
← Back
9ranked-venue papers
4as first author
0since 2021 · last 2012
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 8 · 4 first-authorSoftware engineering, systems software and programming languages · 1

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
5 papers
Processor architecture and microarchitecture · 65% Memory systems · 17% Parallel and multicore computing · 9%
Software engineering, system software, and programming languages
4 papers
Compilers and program optimization · 75% Program analysis · 25%

Topics — the 17 heaviest of 19, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture › microprocessor design › processor core design
in-order core
0.122005
"Flea-flicker" Multipass Pipelining: An Alternative to the High-Power Out-of-Order Offense · MICRO 2005
Beating in-order stalls with "flea-flicker" two-pass pipelining · MICRO 2003
Processor architecture and microarchitecture
instruction-level parallelism
0.112006
Beating In-Order Stalls with "Flea-Flicker" Two-Pass Pipelining · IEEE Trans. Computers 2006
Processor architecture and microarchitecture
latency hiding
0.112006
Beating In-Order Stalls with "Flea-Flicker" Two-Pass Pipelining · IEEE Trans. Computers 2006
Memory systems › memory access latency
load latency
0.112006
Beating In-Order Stalls with "Flea-Flicker" Two-Pass Pipelining · IEEE Trans. Computers 2006
Processor architecture and microarchitecture
pipelining
0.112006
Beating In-Order Stalls with "Flea-Flicker" Two-Pass Pipelining · IEEE Trans. Computers 2006
Parallel and multicore computing
runtime optimization
0.122001
An Architectural Framework for Runtime Optimization · IEEE Trans. Computers 2001
A hardware mechanism for dynamic extraction and relayout of program hot spots · ISCA 2000
Energy-efficient computing › power management › device power management
processor power management
0.112005
"Flea-flicker" Multipass Pipelining: An Alternative to the High-Power Out-of-Order Offense · MICRO 2005
Memory systems › cache
cache miss tolerance
0.012003
Beating in-order stalls with "flea-flicker" two-pass pipelining · MICRO 2003
Processor architecture and microarchitecture › pipelining
pipeline stall
0.012003
Beating in-order stalls with "flea-flicker" two-pass pipelining · MICRO 2003
Program analysis
dynamic analysis
0.012002
Vacuum packing: extracting hardware-detected program phases for post-link optimization · MICRO 2002
Compilers and program optimization › binary rewriting
post-link optimization
0.012002
Vacuum packing: extracting hardware-detected program phases for post-link optimization · MICRO 2002
Compilers and program optimization › dynamic optimization
profile-guided optimization
0.012002
Vacuum packing: extracting hardware-detected program phases for post-link optimization · MICRO 2002
Processor architecture and microarchitecture
branch prediction
0.012001
An Architectural Framework for Runtime Optimization · IEEE Trans. Computers 2001
Processor architecture and microarchitecture
instruction fetch
0.012000
A hardware mechanism for dynamic extraction and relayout of program hot spots · ISCA 2000
Processor architecture and microarchitecture › instruction fetch
trace cache
0.012000
A hardware mechanism for dynamic extraction and relayout of program hot spots · ISCA 2000
Compilers and program optimization
instruction scheduling
0.012006
Beating In-Order Stalls with "Flea-Flicker" Two-Pass Pipelining · IEEE Trans. Computers 2006
Compilers and program optimization
dynamic optimization
0.012001
An Architectural Framework for Runtime Optimization · IEEE Trans. Computers 2001

Methods — techniques the papers use, named apart from their topics

instruction marking · 0.1out-of-order execution · 0.1instruction profiling · 0.1hardware speculation · 0.1runahead execution · 0.1compile-time scheduling · 0.1branch target buffer · 0.1code replication · 0.0code extraction · 0.0
YearPublicationVenuePosition
2012 Phase-based scheduling and thread migration for heterogeneous multicore processors
abstract
Heterogeneous multicore processors (HMPs) can provide better performance and reduced energy consumption than homogeneous ones [3]. Differences between cores provide different processing capabilities for different applications; a dynamic scheduler can exploit these differences to maximize performance and minimize energy consumption [5, 6] by adapting to fine changes in programs behavior. This work proposes new fine-grained online HMP schedulers using program phase identification. However, exploiting fine-grained scheduling results in frequent thread migrations that can harm performance. OS context switching is time consuming (30-60μs [4]). To reduce context switching overhead, a context switching circuit that both accelerates thread switches among cores in HMPs and reduces switching cost within each core (multitasking) is introduced.
Lina Sawalha, Ronald D. Barnes
PACT2
2011 Phase-Guided Scheduling on Single-ISA Heterogeneous Multicore Processors
abstract
Single-ISA heterogeneous (also known as asymmetric) multicore processors offer significant advantages over homogenous multicores in terms of both power and performance. Power-efficient cores can be paired with higher-performance cores to achieve advantageous power/performance tradeoffs. Unfortunately, such processors also create unique challenges in effective mapping of processes to cores. The greater the diversity of cores, the more complex this problem becomes. Previous scheduling approaches sample performance while permuting the schedule across each type of core each time a change in application behavior is detected. However, approaches that require frequent sampling of the performance of threads (or combinations of threads) on each core may be impractical. We propose scheduling threads on a heterogeneous multicore processor using not just the detection of a change in program behavior or phase, but instead an identification and recording of these phase behaviors. We highlight the correlation between the execution phases of an application and the performance of those phases on any particular core type. We present mechanisms that exploit this correlation between program phases and appropriate scheduling decisions and demonstrate near optimal mapping of thread segments to processor cores can be done without frequently sampling the performance of each thread on each processor core type.
Lina Sawalha, Sonya R. Wolff, Monte P. Tull, Ronald D. Barnes
DSD4
2011 Exploiting trunked radio to support ITS network expansion and redundancy
abstract
Typical intelligent transportation systems (ITS) are comprised of geographically distributed ITS devices including sensors, cameras and dynamic message signs (DMS). There are several options for providing data communication between these field devices and traffic management centers (TMC). Wireless networks are attractive due to their relatively lower cost and ease of deployment compared to fixed networks. However, these face unique security and signal interference problems, and deploying new wireless networks can require significant equipment investment. In this work, a new extremely low-cost wireless strategy for ITS network communication is presented. This approach applies control channels of the Network Trunking System (NTS), a licensed radio frequency to support the voice communication, to control DMS operation under the National Transportation Communications for ITS Protocol (NTCIP). Because the NTS network has already installed in the metropolitan, urban, and rural areas in Oklahoma, it provides a cheap deployment solution requiring only additional adapter devices. Long term operation and maintenance costs can further be amortized between voice and data services. The proposed technique is compared to the existing ITS wireless networking strategies and hybrid network strategies merging wired and wireless networks deployed in Oklahoma. Details of the strategy for using wireless networking in the Oklahoma ITS and experiences with wireless ITS device deployment are also provided.
Ekasit Vorakitolan, Joseph P. Havlicek, Mohammed Atiquzzaman, Ronald D. Barnes
PIMRC4
2006 Beating In-Order Stalls with "Flea-Flicker" Two-Pass Pipelining
abstract
While compilers have generally proven adept at planning useful static instruction-level parallelism for in-order microarchitectures, the efficient accommodation of unanticipateable latencies, like those of load instructions, remains a vexing problem. Traditional out-of-order execution hides some of these latencies, but repeats scheduling work already done by the compiler and adds additional pipeline overhead. Other techniques, such as prefetching and multithreading, can hide some anticipateable, long-latency misses, but not the shorter, more diffuse stalls due to difficult-to-anticipate, first or second-level misses. Our work proposes a microarchitectural technique, two-pass pipelining, whereby the program executes on two in-order back-end pipelines coupled by a queue. The "advance" pipeline often defers instructions dispatching with unready operands rather than stalling. The "backup" pipeline allows concurrent resolution of instructions deferred by the first pipeline allowing overlapping of useful "advanced" execution with miss resolution. An accompanying compiler technique and instruction marking further enhance the handling of miss latencies. Applying our technique to an Itanium 2-like design achieves a speedup of 1.38x in mcf, the most memory-intensive SPECint2000 benchmark, and an average of 1.12 x across other selected benchmarks, yielding between 32 percent and 67 percent of an idealized out-of-order design's speedup at a much lower design cost and complexity.
Ronald D. Barnes, John W. Sias, Erik M. Nystrom, Sanjay J. Patel, Nacho Navarro, Wen-Mei W. Hwu
IEEE Trans. Computers1
2005 "Flea-flicker" Multipass Pipelining: An Alternative to the High-Power Out-of-Order Offense
abstract
As microprocessor designs become increasingly power-and complexity-conscious, future microarchitectures must decrease their reliance on expensive dynamic scheduling structures. While compilers have generally proven adept at planning useful static instruction-level parallelism, relying solely on the compiler's instruction execution arrangement performs poorly when cache misses occur, because variable latency is not well tolerated. This paper proposes a new micro architectural model, multipass pipelining, that exploits meticulous compile-time scheduling on simple in-order hardware while achieving excellent cache miss tolerance through persistent advance preexecution beyond otherwise stalled instructions. The pipeline systematically makes multiple passes through instructions that follow a stalled instruction. Each pass increases the speed and energy efficiency of the subsequent ones by preserving computed results. The concept of multiple passes and successive improvement of efficiency across passes in a single pipeline distinguishes multipass pipelining from other runahead schemes. Simulation results show that the multipass technique achieves 77% of the cycle reduction of aggressive out-of-order execution relative to in-order execution. In addition, micro architectural-level power simulation indicates that benefits of multipass are achieved at a fraction of the power overhead of full dynamic scheduling.
Ronald D. Barnes, Shane Ryoo, Wen-Mei W. Hwu
MICRO1
2003 Beating in-order stalls with "flea-flicker" two-pass pipelining
abstract
Accommodating the uncertain latency of load instructions is one of the most vexing problems in in-order microarchitecture design and compiler development. Compilers can generate schedules with a high degree of instruction-level parallelism but cannot effectively accommodate unanticipated latencies; incorporating traditional out-of-order execution into the microarchitecture hides some of this latency but redundantly performs work done by the compiler and adds additional pipeline stages. Although effective techniques, such as prefetching and threading, have been proposed to deal with anticipable, long latency misses, the shorter, more diffuse stalls due to difficult-to-anticipate, first- or second-level misses are less easily hidden on in-order architectures. This paper addresses this problem by proposing a microarchitectural technique, referred to as two-pass pipelining, wherein the program executes on two in-order back-end pipelines coupled by a queue. The "advance" pipeline executes instructions greedily, without stalling on unanticipated latency dependences (executing independent instructions while otherwise blocking instructions are deferred). The "backup" pipeline allows concurrent resolution of instructions that were deferred in the other pipeline, resulting in the absorption of shorter misses and the overlap of longer ones. This paper argues that this design is both achievable and a good use of transistor resources and shows results indicating that it can deliver significant speedups for in-order processor designs.
Ronald D. Barnes, Erik M. Nystrom, John W. Sias, Sanjay J. Patel, Nacho Navarro, Wen-Mei W. Hwu
MICRO1
2002 Vacuum packing: extracting hardware-detected program phases for post-link optimization
abstract
This paper presents Vacuum Packing, a new approach to profile-based program optimization. Instead of using traditional aggregate or summarized execution profile weights, this approach uses a transparent hardware profiler to automatically detect execution phases and record branch profile information for each new phase. The code extraction algorithm then produces code packages that are specially formed for their corresponding phases. The algorithm compensates for the incomplete and often incoherent branch profile information that arises due to the nature of hardware profilers. The technique avoids unnecessary code replication by focusing on hot code, making efficient connections between the original code and the new code, linking code packages at select points to facilitate phase transitions, and providing a platform for efficient optimization. We demonstrate that using a concise set of profile information from a hardware profiler, we can generate code packages, specialized for each phase of execution, that capture more than 80% of the average total program execution. We further show that the approach is very effective in extracting code regions that capture the phasing behavior of programs, that the code size increase is moderate, and that the code regions benefit from sample optimizations.
Ronald D. Barnes, Erik M. Nystrom, Matthew C. Merten, Wen-Mei W. Hwu
MICRO1
2001 An Architectural Framework for Runtime Optimization
abstract
Wide-issue processors continue to achieve higher performance by exploiting greater instruction-level parallelism. Dynamic techniques such as out-of-order execution and hardware speculation have proven effective at increasing instruction throughput. Runtime optimization promises to provide an even higher level of performance by adaptively applying aggressive code transformations on a larger scope. This paper presents a new hardware mechanism for generating and deploying runtime optimized code. The mechanism can be viewed as a filtering system that resides in the retirement stage of the processor pipeline, accepts an instruction execution stream as input, and produces instruction profiles and sets of linked, optimized traces as output. The code deployment mechanism uses an extension to the branch prediction mechanism to migrate execution into the new code without modifying the original code. These new components do not add delay to the execution of the program except during short bursts of reoptimization. This technique provides a strong platform for runtime optimization because the hot execution regions are extracted, optimized, and written to main memory for execution and because these regions persist across context switches. The current design of the framework supports a suite of optimizations, including partial function inlining (even into shared libraries), code straightening optimizations, loop unrolling, and peephole optimizations.
Matthew C. Merten, Andrew R. Trick, Ronald D. Barnes, Erik M. Nystrom, Christopher N. George, John C. Gyllenhaal, Wen-Mei W. Hwu
IEEE Trans. Computers3
2000 A hardware mechanism for dynamic extraction and relayout of program hot spots
abstract
This paper presents a new mechanism for collecting and deploying runtime optimized code. The code-collecting component resides in the instruction retirement stage and lays out hot execution paths to improve instruction fetch rate as well as enable further code optimization. The code deployment component uses an extension to the Branch Target Buffer to migrate execution into the new code without modifying the original code. No significant delay is added to the total execution of the program due to these components. The code collection scheme enables safe runtime optimization along paths that span function boundaries. This technique provides a better platform for runtime optimization than trace caches, because the traces are longer and persist in main memory across context switches. Additionally, these traces are not as susceptible to transient behavior because they are restricted to frequently executed code. Empirical results show that on average this mechanism can achieve better instruction fetch rates using only 12KB of hardware than a trace cache requiring 15KB of hardware, while producing long, persistent traces more suited to optimization.
Matthew C. Merten, Andrew R. Trick, Erik M. Nystrom, Ronald D. Barnes, Wen-Mei W. Hwu
ISCA4