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.

Janice M. Stone

dblp:41/3063 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
0since 2021 · last 2000
—ORCID · none

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

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

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.

Software engineering, system software, and programming languages
2 papers
Concurrent programming · 52% Program verification · 35% Debugging and program repair · 13%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%

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

TopicWeightPapersLastEvidence papers
Concurrent programming › concurrency primitives
compare-and-swap
0.011990
A simple and correct shared-queue algorithm using compare-and-swap · SC 1990
Concurrent programming
concurrent data structures
0.011990
A simple and correct shared-queue algorithm using compare-and-swap · SC 1990
Program verification
correctness proof
0.011990
A simple and correct shared-queue algorithm using compare-and-swap · SC 1990
Program verification › model checking
finite-state verification
0.011990
A simple and correct shared-queue algorithm using compare-and-swap · SC 1990
Concurrent programming
synchronization
0.011990
A simple and correct shared-queue algorithm using compare-and-swap · SC 1990
Debugging and program repair
concurrent program debugging
0.011988
Debugging Concurrent Processes: A Case Study · PLDI 1988
Parallel and multicore computing
parallel programming environment
0.011988
Debugging Concurrent Processes: A Case Study · PLDI 1988

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

state graph analysis · 0.0
YearPublicationVenuePosition
2000 Stream-Oriented FPGA Computing in the Streams-C High Level Language
abstract
Stream oriented processing is an important methodology used in FPGA-based parallel processing. Characteristics of stream-oriented computing include high-data-rate flow of one or more data sources; fixed size, small stream payload (one byte to one word); compute-intensive operations, usually low precision fixed point, on the data stream; access to small local memories holding coefficients and other constants; and occasional synchronization between computational phases. We describe language constructs, compiler technology, and hardware/software libraries embodying the Streams-C system which has been developed to support stream-oriented computation on FPGA-based parallel computers. The language is implemented as a small set of library functions callable from a C language program. The Streams-C compiler synthesizes hardware circuits for multiple FPGAs as well as a multi-threaded software program for the control processor. Our system includes a functional simulation environment based on POSIX threads, allowing the programmer to simulate the collection of parallel processes and their communication at the functional level. Finally we present an application written both in Streams-C and hand-coded in VHDL. Compared to the hand-crafted design, the Streams-C-generated circuit takes 3x the area and runs at 1/2 the clock rate. In terms of time to market, the hand-done design took a month to develop by an experienced hardware developer. The Streams-C design rook a couple of days, for a productivity increase of 10x.
Maya B. Gokhale, Janice M. Stone, Jeffrey M. Arnold, Mirek Kalinowski
FCCM2
1999 Automatic Allocation of Arrays to Memories in FPGA Processors with Multiple Memory Banks
abstract
FPGA-based processors, like many conventional DSP systems, often associate small high performance memories with each processing chip. These memories may be on-board embedded SRAMs or discrete parts. In the process of mapping a computation onto an FPGA processor, it is necessary to map the applications' data to memories. In this work, we present an algorithm that has been implemented in our NAPA C compiler to assign data automatically to memories to produce minimum overall execution time of the loops in the program. With the addition of this algorithm to our compiler, the programmer need not explicitly annotate array declarations with location information. Rather, the compiler analyzes the usage patterns of variables and selects the optimal location for each variable. The algorithm uses a search technique known as implicit enumeration to reduce the otherwise exponential search space. In practice, the use of this memory allocation compiler phase in our SUIF-based NAPA C compiler has negligible effect on compiler run time.
Maya B. Gokhale, Janice M. Stone
FCCM2
1998 NAPA C: Compiling for a Hybrid RISC/FPGA Architecture
abstract
Hybrid architectures combining conventional processors with configurable logic resources enable efficient coordination of control with datapath computation. With integration of the two components on a single device, loop control and data-dependent branching can be handled by the conventional processor. While regular datapath computation occurs on the configurable hardware. This paper describes a novel pragma-based approach to programming such hybrid devices. The NAPA C language provides pragma directives so that the programmer (or an automatic partitioner) can specify where data is to reside and where computation is to occur with statement-level granularity. The NAPA C compiler, targeting National Semiconductor's NAPA1000 chip, performs semantic analysis of the pragma-annotated program and co-synthesizes a conventional program executable combined with a configuration bit stream for the adaptive logic. Compiler optimizations include synthesis of hardware pipelines from pipelineable loops.
Maya B. Gokhale, Janice M. Stone
FCCM2
1990 A simple and correct shared-queue algorithm using compare-and-swap
abstract
A compare-and-swap shared-queue algorithm is presented that permits concurrent access. This algorithm is nondelaying in that no processor need wait for an action by another processor. A verification method that analyzes the states of the shared data structure is given. By drawing a graph that incorporates in a simple way the effects of multiprocessor interleaving, one can quickly find errors in an algorithm or produce a proof of correctness. Since enqueue and dequeue operations may begin at any time, concurrent queue operations are represented by providing, in each state of the shared data structure, one transition that initiates an enqueue operation and another transition for a dequeue operation. The method is a practical one that is applicable to a variety of algorithms that use shared data structures.>
Janice M. Stone
SC1
1988 Debugging Concurrent Processes: A Case Study
abstract
We present a case study that illustrates a method of debugging concurrent processes in a parallel programming environment. It uses a new approach called speculative replay to reconstruct the behavior of a program from the histories of its individual processes. Known time dependencies between events in different processes are used to divide the histories into dependence blocks. A graphical representation called a concurrency map displays possibilities for concurrency among processes. The replay technique preserves the known dependencies and compares the process histories generated during replay with those that were logged during the original program execution. If a process generates a replay history that does not match its original history, replay backs up. An alternative ordering of events is created and tested to see if it produces process histories that match the original histories. Successively more controlled replay sequences are generated, by introducing additional dependencies. We describe ongoing work on tools that will control replay without reconstructing the entire space of possible event orderings.
Janice M. Stone
PLDI1