1 - 25 of 19
Number of results to display per page
CreatorTitleDescriptionSubjectDate
1 Regehr, JohnEliminating the call stack to save RAMMost programming languages support a call stack in the programming model and also in the runtime system.We show that for applications targeting low-power embedded microcontrollers (MCUs), RAM usage can be significantly decreased by partially or completely eliminating the runtime callstack. We presen...2009-01-01
2 Regehr, JohnHierarchical schedulers, performance guarantees, and resource managementAn attractive approach to scheduling applications with diverse CPU scheduling requirements is to use different schedulers for different applications. For example: real-time schedulers allow applications to perform computations before deadlines, time-sharing schedulers provide high throughput for com...1999-01-01
3 Regehr, JohnOffline compression for on-chip RAMWe present offline RAM compression, an automated source-to-source transformation that reduces a program's data size. Statically allocated scalars, pointers, structures, and arrays are encoded and packed based on the results of a whole-program analysis in the value set and pointer set domains. We tar...2007-01-01
4 Berzins, MartinRadiation modeling using the Uintah heterogeneous CPU/GPU runtime systemThe Uintah Computational Framework was developed to provide an environment for solving fluid-structure interaction problems on structured adaptive grids on large-scale, long-running, data-intensive problems. Uintah uses a combination of fluid-flow solvers and particle-based methods for solids, toget...2012-01-01
5 Regehr, JohnDeriving abstract transfer functions for analyzing embedded softwareThis paper addresses the problem of creating abstract transfer functions supporting dataflow analyses. Writing these functions by hand is problematic: transfer functions are difficult to understand, difficult to make precise, and difficult to debug. Bugs in transfer functions are particularly seriou...2006-01-01
6 Regehr, JohnEliminating stack overflow by abstract interpretationAn important correctness criterion for software running on embedded microcontrollers is stack safety: a guarantee that the call stack does not overflow. Our first contribution is a method for statically guaranteeing stack safety of interrupt-driven embedded software using an approach based on contex...2005-01-01
7 Regehr, JohnARMor: fully verified software fault isolationWe have designed and implemented ARMor, a system that uses software fault isolation (SFI) to sandbox application code running on small embedded processors. Sandboxing can be used to protect components such as the RTOS and critical control loops from other, less-trusted components. ARMor guarantees m...2011-01-01
8 Blair, StevenChannel routing for integrated opticsIncreasing scope and applications of integrated optics necessitates the development of automated techniques for physical design of optical systems. This paper presents an automated, planar channel routing technique for integrated optical waveguides. Integrated optics is a planar technology and lacks...2013-01-01
9 Regehr, JohnAtomicity and visibility in tiny embedded systemsVisibility is a property of a programming language's memory model that determines when values stored by one concurrent computation become visible to other computations. Our work exploits the insight that in nesC, a C-like language with explicit atomicity, the traditional way of ensuring timely visib...2006-01-01
10 Regehr, JohnEfficient type and memory safety for tiny embedded systemsWe report our experience in implementing type and memory safety in an efficient manner for sensor network nodes running TinyOS: tiny embedded systems running legacy, C-like code. A compiler for a safe language must often insert dynamic checks into the programs it produces; these generally make progr...2006-01-01
11 Regehr, JohnSurviving sensor network software faultsWe describe Neutron, a version of the TinyOS operating system that efficiently recovers from memory safety bugs. Where existing schemes reboot an entire node on an error, Neutron's compiler and runtime extensions divide programs into recovery units and reboot only the faulting unit. The TinyOS kerne...2009-01-01
12 Regehr, JohnThe problems you're having may not be the problems you think you're having: results from a latency study of windows NTThis paper is intended to catalyze discussions on two intertwined systems topics. First, it presents early results from a latency study of Windows NT that identifies some specific causes of long thread scheduling latencies, many of which delay the dispatching of runnable threads for tens of millisec...1999-01-01
13 Regehr, JohnEfficient memory safety for TinyOSReliable sensor network software is difficult to create: applications are concurrent and distributed, hardware-based memory protection is unavailable, and severe resource constraints necessitate the use of unsafe, low-level languages. Our work improves this situation by providing efficient memory an...2007-01-01
14 Regehr, JohnEdicts: implementing features with flexible binding timesIn a software product line, the binding time of a feature is the time at which one decides to include or exclude a feature from a product. Typical binding site implementations are intended to support a single binding time only, e.g., compile time or run time. Sometimes, however, a product line must...2008-01-01
15 Regehr, JohnSwarm testingSwarm testing is a novel and inexpensive way to improve the diversity of test cases generated during random testing. Increased diversity leads to improved coverage and fault detection. In swarm testing, the usual practice of potentially including all features in every test case is abandoned. Rather,...2012-01-01
16 Regehr, JohnInterface contracts for TinyOSTinyOS applications are built with software components that communicate through narrow interfaces. Since components enable fine-grained code reuse, this approach has been successful in creating applications that make very efficient use of the limited code and data memory on sensor network nodes. How...2007-01-01
17 Regehr, JohnA practical logic framework for verifying safety properties of executablesWe present a novel program logic, Lf , which is designed on top of a Hoare logic, but is simpler, more flexible and more scalable. Based on Lf , we develop a framework for automatically verifying safety properties of executables. It utilizes a whole-program interprocedural abstract interpretation to...2011-01-01
18 Regehr, JohnRandom testing of interrupt-driven softwareInterrupt-driven embedded software is hard to thoroughly test since it usually contains a very large number of executable paths. Developers can test more of these paths using random interrupt testing-firing random interrupt handlers at random times. Unfortunately, na¨ıve application of random test...2005-01-01
19 Regehr, JohnPluggable abstract domains for analyzing embedded softwareMany abstract value domains such as intervals, bitwise, constants, and value-sets have been developed to support dataflow analysis. Different domains offer alternative tradeoffs between analysis speed and precision. Furthermore, some domains are a better match for certain kinds of code than others. ...2006-01-01
1 - 25 of 19