1,560 research outputs found
Efficient hardware debugging using parameterized FPGA reconfiguration
Functional errors and bugs inadvertently introduced at the RTL stage of the design process are responsible for the largest fraction of silicon IC re-spins. Thus, comprehensive func- tional verification is the key to reduce development costs and to deliver a product in time. The increasing demands for verification led to an increase in FPGA-based tools that perform emulation. These tools can run at much higher operating frequencies and achieve higher coverage than simulation. However, an important pitfall of the FPGA tools is that they suffer from limited internal signal observability, as only a small and preselected set of signals is guided towards (embedded) trace buffers and observed. This paper proposes a dynamically reconfigurable network of multiplexers that significantly enhance the visibility of internal signals. It allows the designer to dynamically change the small set of internal signals to be observed, virtually enlarging the set of observed signals significantly. These multiplexers occupy minimal space, as they are implemented by the FPGAâs routing infrastructure
Cloud engineering is search based software engineering too
Many of the problems posed by the migration of computation to cloud platforms can be formulated and solved using techniques associated with Search Based Software Engineering (SBSE). Much of cloud software engineering involves problems of optimisation: performance, allocation, assignment and the dynamic balancing of resources to achieve pragmatic trade-offs between many competing technical and business objectives. SBSE is concerned with the application of computational search and optimisation to solve precisely these kinds of software engineering challenges. Interest in both cloud computing and SBSE has grown rapidly in the past five years, yet there has been little work on SBSE as a means of addressing cloud computing challenges. Like many computationally demanding activities, SBSE has the potential to benefit from the cloud; âSBSE in the cloudâ. However, this paper focuses, instead, of the ways in which SBSE can benefit cloud computing. It thus develops the theme of âSBSE for the cloudâ, formulating cloud computing challenges in ways that can be addressed using SBSE
The Malware Analysis Body of Knowledge (MABOK)
The ability to forensically analyse malicious software (malware) is becoming an increasingly important discipline in the field of Digital Forensics. This is because malware is becoming stealthier, targeted, profit driven, managed by criminal organizations, harder to detect and much harder to analyse. Malware analysis requires a considerable skill set to delve deep into malware internals when it is designed specifically to detect and hinder such attempts. This paper presents a foundation for a Malware Analysis Body of Knowledge (MABOK) that is required to successfully forensically analyse malware. This body of knowledge has been the result of several years of research into malware dissection
Laboratory for Simulation Development
This document contains a description of the main purposes and characteristics of Lsd. It discusses the problems related to the use of simulations in social sciences and describes how Lsd tackles these problems. In general, the use of simulations is constrained by two kinds of problems: difficulties in building the programs and difficulties to make use of other peopleâs programs. Lsd proposes a system to facilitate both aspects of the use of simulation models. This document is mainly concerned with the use of simulations by unskilled computer users, and describes in detail how Lsd can be successfully used to explore and use a model without requiring any programming knowledge. Though it is not the main concern of the document, there are also few hints on the aspect of simulation program building.Programming, Simulation models
Program development using abstract interpretation (and the ciao system preprocessor)
The technique of Abstract Interpretation has allowed the development of very sophisticated global program analyses which are at the same time provably correct and practical. We present in a tutorial fashion a novel program development framework which uses abstract interpretation
as a fundamental tool. The framework uses modular, incremental abstract interpretation to obtain information about the program. This information is used to validate programs, to detect bugs with respect to partial specifications written using assertions (in the program itself and/or in system librarles), to genĂ©rate and simplify run-time tests, and to perform high-level program transformations such as mĂșltiple abstract specialization, parallelization, and resource usage control, all in a provably correct way. In the case of validation and debugging, the assertions can refer to a variety of program points such as procedure entry, procedure exit, points within procedures, or global computations. The system can reason with much richer information than, for example, traditional types. This includes data structure shape (including pointer sharing), bounds on data structure sizes, and other operational variable instantiation properties, as well as procedure-level properties such as determinacy, termination, non-failure, and bounds on resource consumption (time or space cost). CiaoPP, the preprocessor of the Ciao multi-paradigm programming system, which implements the described functionality, will be used to illustrate the fundamental ideas
Repairing Ontologies via Axiom Weakening.
Ontology engineering is a hard and error-prone task, in which
small changes may lead to errors, or even produce an inconsistent
ontology. As ontologies grow in size, the need for automated
methods for repairing inconsistencies while preserving
as much of the original knowledge as possible increases.
Most previous approaches to this task are based on removing
a few axioms from the ontology to regain consistency.
We propose a new method based on weakening these axioms
to make them less restrictive, employing the use of refinement
operators. We introduce the theoretical framework for
weakening DL ontologies, propose algorithms to repair ontologies
based on the framework, and provide an analysis of
the computational complexity. Through an empirical analysis
made over real-life ontologies, we show that our approach
preserves significantly more of the original knowledge of the
ontology than removing axioms
Static Application-Level Race Detection in STM Haskell using Contracts
Writing concurrent programs is a hard task, even when using high-level
synchronization primitives such as transactional memories together with a
functional language with well-controlled side-effects such as Haskell, because
the interferences generated by the processes to each other can occur at
different levels and in a very subtle way. The problem occurs when a thread
leaves or exposes the shared data in an inconsistent state with respect to the
application logic or the real meaning of the data. In this paper, we propose to
associate contracts to transactions and we define a program transformation that
makes it possible to extend static contract checking in the context of STM
Haskell. As a result, we are able to check statically that each transaction of
a STM Haskell program handles the shared data in a such way that a given
consistency property, expressed in the form of a user-defined boolean function,
is preserved. This ensures that bad interference will not occur during the
execution of the concurrent program.Comment: In Proceedings PLACES 2013, arXiv:1312.2218. [email protected];
[email protected]
- âŠ