8295029
Cache filtering techniques to reduce the negative impact of useless speculative memory references on processor performance
High-performance processors employ aggressive speculation and prefetching techniques to increase performance. Speculative memory references caused by these techniques sometimes bring data into the caches that are not needed by correct execution. This paper proposes the use of the first-level caches as filters that predict the usefulness of speculative memory references. With the proposed technique, speculative memory references bring data only into the first-level caches rather than all levels in the cache hierarchy. The processor monitors the use of the cache blocks in the first-level caches and decides which blocks to keep in the cache hierarchy based on the usefulness of cache blocks. It is shown that a simple implementation of this technique usually outperforms inclusive and exclusive baseline cache hierarchies commonly used by today's processors and results in IPC performance improvements of up to 9.2% on the SPEC2000 integer benchmarks.
1551402
Diverge-Merge Processor (DMP): Dynamic Predicated Execution of Complex Control-Flow Graphs Based on Frequently Executed Paths
This paper proposes a new processor architecture for handling hard-to-predict branches, the diverge-merge processor (DMP). The goal of this paradigm is to eliminate branch mispredictions due to hard-to-predict dynamic branches by dynamically predicating them without requiring ISA support for predicate registers and predicated instructions. To achieve this without incurring large hardware cost and complexity, the compiler provides control-flow information by hints and the processor dynamically predicates instructions only on frequently executed program paths. The key insight behind DMP is that most control-flow graphs look and behave like simple hammock (if-else) structures when only frequently executed paths in the graphs are considered. Therefore, DMP can dynamically predicate a much larger set of branches than simple hammock branches. Our evaluations show that DMP out performs a baseline processor with an aggressive branch predictor by 19.3% on average over SPEC integer 95 and 2000 benchmarks, through a reduction of 38% in pipeline flushes due to branch mispredictions, while consuming 9.0% less energy. We also compare DMP with previously proposed predication and dual-path/multipath execution paradigms in terms of performance, complexity, and energy consumption, and find that DMP is the highest performance and also the most energy-efficient design
7309856
Wish branches: combining conditional branching and predication for adaptive predicated execution
Predicated execution has been used to reduce the number of branch mispredictions by eliminating hard-to-predict branches. However, the additional instruction overhead and additional data dependencies due to predicated execution sometimes offset the performance advantage of having fewer mispredictions. We propose a mechanism in which the compiler generates code that can be executed either as predicated code or non-predicated code (i.e., code with normal conditional branches). The hardware decides whether the predicated code or the non-predicated code is executed based on a run-time confidence estimation of the branch's prediction. The code generated by the compiler is the same as predicated code, except the predicated conditional branches are NOT removed - they are left intact in the program code. These conditional branches are called wish branches. The goal of wish branches is to use predicated execution for hard-to-predict dynamic branches and branch prediction for easy-to-predict dynamic branches, thereby obtaining the best of both worlds. We also introduce a class of wish branches, called wish loops, which utilize predication to reduce the misprediction penalty for hard-to-predict backward (loop) branches. We describe the semantics, types, and operation of wish branches along with the software and hardware support required to generate and utilize them. Our results show that wish branches decrease the average execution time of a subset of SPEC INT 2000 benchmarks by 14.2% compared to traditional conditional branches and by 13.3% compared to the best-performing predicated code binary
13287397
An analysis of the performance impact of wrong-path memory references on out-of-order and runahead execution processors
High-performance, out-of-order execution processors spend a significant portion of their execution time on the incorrect program path even though they employ aggressive branch prediction algorithms. Although memory references generated on the wrong path do not change the architectural state of the processor, they affect the arrangement of data in the memory hierarchy. This paper examines the effects of wrong-path memory references on processor performance. It is shown that these references significantly affect the IPC (instructions per cycle) performance of a processor. Not modeling them leads to errors of up to 10 percent (4 percent on average) in IPC estimates for the SPEC CPU2000 integer benchmarks on an out-of-order processor and errors of up to 63 percent on a runahead-execution processor. In general, the error in the IPC increases with increasing memory latency and instruction window size. We find that wrong-path references are usually beneficial for performance because they prefetch data that is used by later correct-path references. L2 cache pollution is found to be the most significant negative effect of wrong-path references. Code examples are shown to provide insights into how wrong-path references affect performance. We also show that it is crucial to model wrong-path references to accurately estimate the performance improvement provided by runahead execution.
2036044
Watermarking JBIG2 text region for image authentication
An authentication watermarking technique (AWT) inserts hidden data into an image in order to detect any accidental or malicious alteration to the image. AWT usually computes, using a secret-key, the message authentication code (MAC) of the image, and somehow inserts MAC into the image itself. The authentication verification is performed using the same secret-key used in the insertion. JBIG2 is an international standard for lossy and lossless binary image compression. It decomposes the image into several regions (text, halftone, line-art) and encodes each one using the most appropriate method. This paper proposes a novel data-hiding technique to embed the data into the text region of a JBIG2 file. We, then, use it to create an AWT for a JBIG2-encoded image. The embedded data can be extracted from either the JBIG2 file itself or the binary image obtained by decoding the JBIG2 file.
27330844
Efficient processing of regular path joins using PID
Abstract XML is data that has no fixed structure. So it is hard to design a schema for storing and querying an XML data. Instead of a fixed schema, graph-based data models are widely adopted for querying XML. Queries on XML are based on paths in a data graph. A meaningful query usually has several paths in it, but much of recent research is more concerned with optimizing a single path in a query. In this paper, we present an efficient technique for processing multiple path expressions in a query. We implemented our technique and present preliminary performance results.
27100927
Efficient structural joins with clustered extents
In order to retrieve an extent in the first step, inverted index built on selection predicates is us For each selection predicate, an extent can be e retrieved by looking up the inverted index. Finding occurrences of the s tructural matches in th second step is a core operation in XML query proce ing. To solve this sub-problem, Zhang et al. [6] p posed the multi-predicate merge join (MPMGJN) gorithm, which is an extension of the traditional mer join algorithm. Al-Khalifa et al. [1] generalized th MPMGJN algorithm to the tree-merge join algorithm that consider the order of join results. Furthermo they proposed the stack-tree join algorithms that improve the tree-merge join algorithms. Those al rithms are dependent on the representation of p tions of XML elements (and string values) to det mine structural relationships between tree nodes. cently, Chien et al. [3] proposed a structural join alg
17995343
Automatic design of nonlinear filters by nearest neighbor learning
Nonlinear filters have been used not only in noise elimination but in a wide variety of image processing applications. Traditionally the design of a digital filter is a manual task and the user accomplishes it based on previous experiences. Unfortunately often this is not a trivial task. Thus some works try to overcome this difficulty constructing the filters automatically by computational learning neural networks, genetic algorithms and statistical estimation. These works use typical input-output images of the application as the training samples. Many different kinds of filters can be easily constructed using this approach. This paper proposes the use of nearest neighbor (NN) learning to automatic filter construction. The kd-tree (k-dimensional binary tree) is used to accelerate the NN searching. A texture recognition application example is depicted.
17616851
Designing Business Processes and Communication Structures for E-Business Using Ontology-Based Enterprise Models with Mathematical Models
Organizations are apprehensive about developing e-business systems because the endeavor is novel. If e-business is considered as the conduct of business using the Internet--a network of networks--then e-business systems design can be represented as a network design problem. This paper outlines an approach for analysis and design of business process and communications structure networks for e-business. Network design alternatives are generated by applying best practices and design principles to business requirements, using ontology-based enterprise models. Alternatives then are modeled mathematically for analysis and comparison. Domains relevant for e-business systems design are described, formally and systematically, using this approach. These formal descriptions are general axioms, used to logically and mathematically infer prescriptions for specific design problems. These descriptions and prescriptions are sharable and reusable. The mathematical models are developed using known algorithms, heuristics, and formulae. Therefore, fidelity of prescriptions based on these models can be objectively justified. Due to these characteristics, models developed using this technique are especially useful for developing novel e-business systems. An example application of this technique is presented, and research questions addressed using the approach are discussed.