Demo Data from SIGIR 2026 / reviewers in the wild / expert
Gurindar S. Sohi
dblp:s/GurindarSSohi · also Guri Sohi, Gurindar Singh Sohi, Gurindar Sohi
· DBLP profile ↗
88ranked-venue papers
12as first author
1since 2021 · last 2021
0009-0006-5848-6391ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 83 · 12 first-author · 1 since 2021Software engineering, systems software and programming languages · 35 · 5 first-authorApplied, interdisciplinary, general and emerging computing · 2
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
72 papers |
Processor architecture and microarchitecture · 36% Memory systems · 34% Parallel and multicore computing · 10% | |
| Software engineering, system software, and programming languages
8 papers |
Operating systems · 45% Program analysis · 33% Compilers and program optimization · 14% |
Topics — the 30 heaviest of 144, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Memory systems
cache |
0.6 | 8 | 2021 | Fat Loads: Exploiting Locality Amongst Contemporaneous Load Operations to Optimize Cache Accesses · MICRO 2021 Cooperative Caching for Chip Multiprocessors · ISCA 2006 Dependance Based Prefetching for Linked Data Structures · ASPLOS 1998 |
Memory systems › memory management › virtual memory
address translation |
0.3 | 2 | 2018 | Filtering Translation Bandwidth with Virtual Caching · ASPLOS 2018 High-Bandwidth Address Translation for Multiple-Issue Processors · ISCA 1996 |
Memory systems › memory management
virtual memory |
0.3 | 2 | 2018 | Filtering Translation Bandwidth with Virtual Caching · ASPLOS 2018 High-Bandwidth Address Translation for Multiple-Issue Processors · ISCA 1996 |
GPUs and heterogeneous computing
GPU memory management |
0.3 | 1 | 2018 | Filtering Translation Bandwidth with Virtual Caching · ASPLOS 2018 |
Processor architecture and microarchitecture
instruction-level parallelism |
0.3 | 18 | 2002 | Dynamic dead-instruction detection and elimination · ASPLOS 2002 Microarchitectural innovations: boosting microprocessor performance beyond semiconductor technology scaling · Proc. IEEE 2001 Execution-based prediction using speculative slices · ISCA 2001 |
Memory systems
cache design |
0.3 | 4 | 2016 | Revisiting virtual L1 caches: A practical design using dynamic synonym remapping · HPCA 2016 Streamlining Data Cache Access with Fast Address Calculation · ISCA 1995 High-Bandwidth Data Memory Systems for Superscalar Processors · ASPLOS 1991 |
Processor architecture and microarchitecture
chip multiprocessor |
0.3 | 6 | 2012 | Program Demultiplexing: Data-flow based Speculative Parallelization of Methods in Sequential Programs · ISCA 2006 Computation spreading: employing hardware migration to specialize CMP cores on-the-fly · ASPLOS 2006 Single-Chip Multiprocessors: The Next Wave of Computer Architecture Innovation · MICRO 2004 |
Memory systems › cache › cache organization
virtual cache |
0.2 | 1 | 2016 | Revisiting virtual L1 caches: A practical design using dynamic synonym remapping · HPCA 2016 |
Hardware reliability and fault tolerance
fault-tolerant parallel computing |
0.2 | 1 | 2014 | Globally precise-restartable execution of parallel programs · PLDI 2014 |
Processor architecture and microarchitecture
speculative execution |
0.2 | 8 | 2004 | Coherence decoupling: making use of incoherence · ASPLOS 2004 Execution-based prediction using speculative slices · ISCA 2001 Register integration: a simple and efficient implementation of squash reuse · MICRO 2000 |
Memory systems › memory hierarchy
cache hierarchy |
0.2 | 3 | 2018 | Filtering Translation Bandwidth with Virtual Caching · ASPLOS 2018 Revisiting virtual L1 caches: A practical design using dynamic synonym remapping · HPCA 2016 Effective Jump-Pointer Prefetching for Linked Data Structures · ISCA 1999 |
Processor architecture and microarchitecture
multicore design |
0.2 | 2 | 2009 | Mixed-mode multicore reliability · ASPLOS 2009 Adapting to intermittent faults in multicore systems · ASPLOS 2008 |
Memory systems
cache coherence |
0.2 | 5 | 2006 | Cooperative Caching for Chip Multiprocessors · ISCA 2006 Coherence decoupling: making use of incoherence · ASPLOS 2004 Speculative Versioning Cache · IEEE Trans. Parallel Distributed Syst. 2001 |
Operating systems › resource management › process management › CPU scheduling
multiprocessor scheduling |
0.1 | 1 | 2012 | Supporting Overcommitted Virtual Machines through Hardware Spin Detection · IEEE Trans. Parallel Distributed Syst. 2012 |
Cloud and datacenter computing
virtualization |
0.1 | 1 | 2012 | Supporting Overcommitted Virtual Machines through Hardware Spin Detection · IEEE Trans. Parallel Distributed Syst. 2012 |
Cloud and datacenter computing › virtualization › virtual machine management
virtual machine scheduling |
0.1 | 1 | 2012 | Supporting Overcommitted Virtual Machines through Hardware Spin Detection · IEEE Trans. Parallel Distributed Syst. 2012 |
Processor architecture and microarchitecture
out-of-order execution |
0.1 | 6 | 2008 | Serializing instructions in system-intensive workloads: Amdahl's Law strikes again · HPCA 2008 ARB: A Hardware Mechanism for Dynamic Reordering of Memory References · IEEE Trans. Computers 1996 Use-Based Register Caching with Decoupled Indexing · ISCA 2004 |
Parallel and multicore computing › parallel programming models
automatic parallelization |
0.1 | 1 | 2011 | Dataflow execution of sequential imperative programs on multicore architectures · MICRO 2011 |
Parallel and multicore computing
dataflow computing |
0.1 | 1 | 2011 | Dataflow execution of sequential imperative programs on multicore architectures · MICRO 2011 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2011 | Dataflow execution of sequential imperative programs on multicore architectures · MICRO 2011 |
Parallel and multicore computing
speculative parallelization |
0.1 | 2 | 2006 | Program Demultiplexing: Data-flow based Speculative Parallelization of Methods in Sequential Programs · ISCA 2006 Master/slave speculative parallelization · MICRO 2002 |
Hardware reliability and fault tolerance › redundancy
dual modular redundancy |
0.1 | 1 | 2009 | Mixed-mode multicore reliability · ASPLOS 2009 |
Parallel and multicore computing › parallel computation models
parallel execution models |
0.1 | 1 | 2009 | Serialization sets: a dynamic dependence-based parallel execution model · PPoPP 2009 |
Hardware reliability and fault tolerance › redundancy
redundant execution |
0.1 | 1 | 2009 | Mixed-mode multicore reliability · ASPLOS 2009 |
Performance modeling and evaluation
workload characterization |
0.1 | 5 | 2008 | Execution-based prediction using speculative slices · ISCA 2001 Understanding the backward slices of performance degrading instructions · ISCA 2000 Serializing instructions in system-intensive workloads: Amdahl's Law strikes again · HPCA 2008 |
Processor architecture and microarchitecture
value prediction |
0.1 | 3 | 2002 | Master/slave speculative parallelization · MICRO 2002 Characterizing and predicting value degree of use · MICRO 2002 Understanding the Differences Between Value Prediction and Instruction Reuse · MICRO 1998 |
Parallel and multicore computing › parallel scheduling
thread scheduling |
0.1 | 2 | 2009 | Computation spreading: employing hardware migration to specialize CMP cores on-the-fly · ASPLOS 2006 Mixed-mode multicore reliability · ASPLOS 2009 |
Electronic design automation › hardware verification and test › fault diagnosis
intermittent faults |
0.1 | 1 | 2008 | Adapting to intermittent faults in multicore systems · ASPLOS 2008 |
Memory systems › cache
prefetching |
0.1 | 3 | 2002 | A quantitative framework for automated pre-execution thread selection · MICRO 2002 Effective Jump-Pointer Prefetching for Linked Data Structures · ISCA 1999 Dependance Based Prefetching for Linked Data Structures · ASPLOS 1998 |
Processor architecture and microarchitecture › speculative execution
memory dependence speculation |
0.1 | 3 | 2001 | Speculative Versioning Cache · IEEE Trans. Parallel Distributed Syst. 2001 Memory Dependence Speculation Tradeoffs in Centralized, Continuous-Window Superscalar Processors · HPCA 2000 Speculative Versioning Cache · HPCA 1998 |
Methods — techniques the papers use, named apart from their topics
prediction · 0.5load classification · 0.5address translation bandwidth reduction · 0.3TLB miss filtering · 0.3GPU virtual cache hierarchy · 0.3hardware spin detection · 0.3VCPU preemption · 0.3workload characterization · 0.2simulation-based evaluation · 0.2simulation · 0.2trigger-based execution · 0.1data-flow speculation · 0.1dead instruction prediction · 0.0branch prediction · 0.0value invariance estimation · 0.0memory dependence profiling · 0.0runtime checking · 0.0program transformation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Fat Loads: Exploiting Locality Amongst Contemporaneous Load Operations to Optimize Cache AccessesabstractThis paper considers locality among load instructions that are in processing contemporaneously within a processor to optimize the number of accesses to the memory hierarchy. A simple technique is used to learn and predict the number of contemporaneous accesses to a region of memory and classify a particular dynamic load into a normal or a fat load. Fat loads bring in additional data into Contemporaneous Load Access Registers (CLARs), from where other contemporaneous loads could be serviced without accessing the L1 cache. Experimental results indicate that with fat loads, along with 4 or 8 cache line size CLARs (256 or 512 bytes), the number of L1 cache accesses could be reduced by 50-60%, resulting in significant energy savings for the L1 cache operations. Further, in several cases the reduced latency for loads serviced from a CLAR results in an earlier resolution of some mispredicted branches, and a reduction in the number of wrong-path instructions, especially loads. Vanshika Baoni, Adarsh Mittal, Gurindar S. Sohi |
MICRO | 3 |
| 2018 | Filtering Translation Bandwidth with Virtual CachingabstractHeterogeneous computing with GPUs integrated on the same chip as CPUs is ubiquitous, and to increase programmability many of these systems support virtual address accesses from GPU hardware. However, this entails address translation on every memory access. We observe that future GPUs and workloads show very high bandwidth demands (up to 4 accesses per cycle in some cases) for shared address translation hardware due to frequent private TLB misses. This greatly impacts performance (32% average performance degradation relative to an ideal MMU). To mitigate this overhead, we propose a software-agnostic, practical, GPU virtual cache hierarchy. We use the virtual cache hierarchy as an effective address translation bandwidth filter. We observe many requests that miss in private TLBs find corresponding valid data in the GPU cache hierarchy. With a GPU virtual cache hierarchy, these TLB misses can be filtered (i.e., virtual cache hits), significantly reducing bandwidth demands for the shared address translation hardware. In addition, accelerator-specific attributes (e.g., less likelihood of synonyms) of GPUs reduce the design complexity of virtual caches, making a whole virtual cache hierarchy (including a shared L2 cache) practical for GPUs. Our evaluation shows that the entire GPU virtual cache hierarchy effectively filters the high address translation bandwidth, achieving almost the same performance as an ideal MMU. We also evaluate L1-only virtual cache designs and show that using a whole virtual cache hierarchy obtains additional performance benefits (1.31× speedup on average). Hongil Yoon, Jason Lowe-Power, Gurindar S. Sohi |
ASPLOS | 3 |
| 2017 | ATM: Approximate Task Memoization in the Runtime SystemabstractRedundant computations appear during the execution of real programs. Multiple factors contribute to these unnecessary computations, such as repetitive inputs and patterns, calling functions with the same parameters or bad programming habits. Compilers minimize non useful code with static analysis. However, redundant execution might be dynamic and there are no current approaches to reduce these inefficiencies. Additionally, many algorithms can be computed with different levels of accuracy. Approximate computing exploits this fact to reduce execution time at the cost of slightly less accurate results. In this case, expert developers determine the desired tradeoff between performance and accuracy for each application. In this paper, we present Approximate Task Memoization (ATM), a novel approach in the runtime system that transparently exploits both dynamic redundancy and approximation at the task granularity of a parallel application. Memoization of previous task executions allows predicting the results of future tasks without having to execute them and without losing accuracy. To further increase performance improvements, the runtime system can memoize similar tasks, which leads to task approximate computing. By defining how to measure task similarity and correctness, we present an adaptive algorithm in the runtime system that automatically decides if task approximation is beneficial or not. When evaluated on a real 8-core processor with applications from different domains (financial analysis, stencil-computation, machine-learning and linear-algebra), ATM achieves a 1.4x average speedup when only applying memoization techniques. When adding task approximation, ATM achieves a 2.5x average speedup with an average 0.7% accuracy loss (maximum of 3.2%). Iulian Brumar, Marc Casas, Miquel Moretó, Mateo Valero, Gurindar S. Sohi |
IPDPS | 5 |
| 2016 | Revisiting virtual L1 caches: A practical design using dynamic synonym remappingabstractVirtual caches have potentially lower access latency and energy consumption than physical caches because they do not consult the TLB prior to cache access. However, they have not been popular in commercial designs. The crux of the problem is the possibility of synonyms. This paper makes several empirical observations about the temporal characteristics of synonyms, especially in caches of sizes that are typical of L1 caches. By leveraging these observations, the paper proposes a practical design of an L1 virtual cache that (1) dynamically decides a unique virtual page number for all the synonymous virtual pages that map to the same physical page and (2) uses this unique page number to place and look up data in the virtual caches. Accesses to this unique page number proceed without any intervention. Accesses to other synonymous pages are dynamically detected, and remapped to the corresponding unique virtual page number to correctly access data in the cache. Such remapping operations are rare, due to the temporal properties of synonyms, allowing a Virtual Cache with Dynamic Synonym Remapping (VC-DSR) to achieve most of the benefits of virtual caches but without software involvement. Experimental results based on real world applications show that VC-DSR can achieve about 92% of the dynamic energy savings for TLB lookups, and 99.4% of the latency benefits of ideal (but impractical) virtual caches for the configurations considered. Hongil Yoon, Gurindar S. Sohi |
HPCA | 2 |
| 2014 | Welcome program chairsabstractWelcome to HOT CHIPS 26, the 26th anniversary conference. A look back over these 26 years shows the amazing progress made in computer engineering. This progress can be measured in terms of performance, cost, density and versatility of function. These technological advances have brought advances in functionality, creating new companies, new markets and indeed new patterns of socialization. Samuel Naffziger, Gurindar S. Sohi |
Hot Chips Symposium | 2 |
| 2014 | Globally precise-restartable execution of parallel programsabstractEmerging trends in computer design and use are likely to make exceptions, once rare, the norm, especially as the system size grows. Due to exceptions, arising from hardware faults, approximate computing, dynamic resource management, etc., successful and error-free execution of programs may no longer be assured. Yet, designers will want to tolerate the exceptions so that the programs execute completely, efficiently and without external intervention. Gagan Raj Gupta 0001, Srinath Sridharan, Gurindar S. Sohi |
PLDI | 3 |
| 2014 | Adaptive, efficient, parallel execution of parallel programsabstractFuture multicore processors will be heterogeneous, be increasingly less reliable, and operate in dynamically changing operating conditions. Such environments will result in a constantly varying pool of hardware resources which can greatly complicate the task of efficiently exposing a program's parallelism onto these resources. Coupled with this uncertainty is the diverse set of efficiency metrics that users may desire. This paper proposes Varuna, a system that dynamically, continuously, rapidly and transparently adapts a program's parallelism to best match the instantaneous capabilities of the hardware resources while satisfying different efficiency metrics. Varuna is applicable to both multithreaded and task-based programs and can be seamlessly inserted between the program and the operating system without needing to change the source code of either. Srinath Sridharan, Gagan Raj Gupta 0001, Gurindar S. Sohi |
PLDI | 3 |
| 2013 | Holistic run-time parallelism management for time and energy efficiencyabstractThe ubiquity of parallel machines will necessitate time- and energy-efficient parallel execution of a program in a wide range of hardware and software environments. Prevalent parallel execution models can fail to be efficient. Unable to account for dynamic changes in operating conditions, they may create non-optimum parallelism, leading to underutilization or contention of resources. We propose ParallelismDial (PD), a model to dynamically, continuously and judiciously adapt a program's degree of parallelism to a given dynamic operating environment. PD uses a holistic metric to measure system-efficiency. The metric is used to systematically optimize the program's execution. Srinath Sridharan, Gagan Raj Gupta 0001, Gurindar S. Sohi |
ICS | 3 |
| 2012 | Efficient, precise-restartable program execution on future multicores
Gagan Raj Gupta 0001, Srinath Sridharan, Gurindar S. Sohi |
Hot Chips Symposium | 3 |
| 2012 | Supporting Overcommitted Virtual Machines through Hardware Spin DetectionabstractMultiprocessor operating systems (OSs) pose several unique and conflicting challenges to System Virtual Machines (System VMs). For example, most existing system VMs resort to gang scheduling a guest OS's virtual processors (VCPUs) to avoid OS synchronization overhead. However, gang scheduling is infeasible for some application domains, and is inflexible in other domains. In an overcommitted environment, an individual guest OS has more VCPUs than available physical processors (PCPUs), precluding the use of gang scheduling. In such an environment, we demonstrate a more than two-fold increase in application runtime when transparently virtualizing a chip-multiprocessor's cores. To combat this problem, we propose a hardware technique to detect when a VCPU is wasting CPU cycles, and preempt that VCPU to run a different, more productive VCPU. Our technique can dramatically reduce cycles wasted on OS synchronization, without requiring any semantic information from the software. We then present a server consolidation case study to demonstrate the potential of more flexible scheduling policies enabled by our technique. We propose one such policy that logically partitions the CMP cores between guest VMs. This policy increases throughput by 10-25 percent for consolidated server workloads due to improved cache locality and core utilization. Koushik Chakraborty, Philip M. Wells, Gurindar S. Sohi |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 2011 | Dataflow execution of sequential imperative programs on multicore architecturesabstractAs multicore processors become the default, researchers are aggressively looking for program execution models that make it easier to use the available resources. Multithreaded programming models that rely on statically-parallel programs have gained prevalence. Most of the existing research is directed at adapting and enhancing such models, alleviating their drawbacks, and simplifying their usage. This paper takes a different approach and proposes a novel execution model to achieve parallel execution of statically-sequential programs. It dynamically parallelizes the execution of suitably-written sequential programs, in a dataflow fashion, on multiple processing cores. Significantly, the execution is race-free and determinate. Thus the model eases program development and yet exploits available parallelism. Gagan Raj Gupta 0001, Gurindar S. Sohi |
MICRO | 2 |
| 2009 | Mixed-mode multicore reliabilityabstractFuture processors are expected to observe increasing rates of hardware faults. Using Dual-Modular Redundancy (DMR), two cores of a multicore can be loosely coupled to redundantly execute a single software thread, providing very high coverage from many difference sources of faults. This reliability, however, comes at a high price in terms of per-thread IPC and overall system throughput. We make the observation that a user may want to run both applications requiring high reliability, such as financial software, and more fault tolerant applications requiring high performance, such as media or web software, on the same machine at the same time. Yet a traditional DMR system must fully operate in redundant mode whenever any application requires high reliability. This paper proposes a Mixed-Mode Multicore (MMM), which enables most applications, including the system software, to run with high reliability in DMR mode, while applications that need high performance can avoid the penalty of DMR. Though conceptually simple, two key challenges arise: 1) care must be taken to protect reliable applications from any faults occurring to applications running in high performance mode, and 2) the desire to execute additional independent software threads for a performance application complicates the scheduling of computation to cores. After solving these issues, an MMM is shown to improve overall system performance, compared to a traditional DMR system, by approximately 2X when one reliable and one performance application are concurrently executing. Philip M. Wells, Koushik Chakraborty, Gurindar S. Sohi |
ASPLOS | 3 |
| 2009 | Serialization sets: a dynamic dependence-based parallel execution modelabstractThis paper proposes a new parallel execution model where programmers augment a sequential program with pieces of code called serializers that dynamically map computational operations into serialization sets of dependent operations. A runtime system executes operations in the same serialization set in program order, and may concurrently execute operations in different sets. Because serialization sets establish a logical ordering on all operations, the resulting parallel execution is predictable and deterministic. Matthew D. Allen, Srinath Sridharan, Gurindar S. Sohi |
PPoPP | 3 |
| 2008 | Adapting to intermittent faults in multicore systemsabstractFuture multicore processors will be more susceptible to a variety of hardware failures. In particular, intermittent faults, caused in part by manufacturing, thermal, and voltage variations, can cause bursts of frequent faults that last from several cycles to several seconds or more. Due to practical limitations of circuit techniques, cost-effective reliability will likely require the ability to temporarily suspend execution on a core during periods of intermittent faults. Philip M. Wells, Koushik Chakraborty, Gurindar S. Sohi |
ASPLOS | 3 |
| 2008 | Serializing instructions in system-intensive workloads: Amdahl's Law strikes againabstractSerializing instructions (SIs), such as writes to control registers, have many complex dependencies, and are difficult to execute out-of-order (OoO). To avoid unnecessary complexity, processors often serialize the pipeline to maintain sequential semantics for these instructions. Philip M. Wells, Gurindar S. Sohi |
HPCA | 2 |
| 2007 | Adapting to Intermittent Faults in Future Multicore Systems
Philip M. Wells, Koushik Chakraborty, Gurindar S. Sohi |
PACT | 3 |
| 2007 | Cooperative cache partitioning for chip multiprocessorsabstractThis paper presents Cooperative Cache Partitioning (CCP) to allocate cache resources among threads concurrently running on CMPs. Unlike cache partitioning schemes that use a single spatial partition repeatedly throughout a stable program phase, CCP resolves cache contention with multiple time-sharing partitions. Timesharing cache resources among partitions allows each thrashing thread to speed up dramatically in at least one partition by unfairly shrinking other threads' capacity allocations, while improving fairness by giving different partitions equal chance to execute. Quality-of-Service (QoS) is guaranteed over the long term by orchestrating the shrink and expansion of each thread's capacity across partitions to bound the average slowdown. Time-sharing based cache partitioning is further integrated with CMP cooperative caching [6] to exploit the benefits of LRU-based latency optimizations, which leads to a simplified partitioning algorithm and better performance for workloads that do not benefit from cache partitioning. Jichuan Chang, Gurindar S. Sohi |
ICS | 2 |
| 2006 | Hardware support for spin management in overcommitted virtual machinesabstractMultiprocessor operating systems (OSs) pose several unique and conflicting challenges to System Virtual Machines (System VMs). For example, most existing system VMs resort to gang scheduling a guest OS's virtual processors (VCPUs) to avoid OS synchronization overhead. However, gang scheduling is infeasible for some application domains, and is inflexible in other domains.In an overcommitted environment, an individual guest OS has more VCPUs than available physical processors (PCPUs), precluding the use of gang scheduling. In such an environment, we demonstrate a more than two-fold increase in runtime when transparently virtualizing a chip-multiprocessor's cores. To combat this problem, we propose a hardware technique to detect several cases when a VCPU is not performing useful work, and suggest preempting that VCPU to run a different, more productive VCPU. Our technique can dramatically reduce cycles wasted on OS synchronization, without requiring any semantic information from the software.We then present a case study, typical of server consolidation, to demonstrate the potential of more flexible scheduling policies enabled by our technique. We propose one such policy that logically partitions the CMP cores between guest VMs. This policy increases throughput by 10-25% for consolidated server workloads due to improved cache locality and core utilization, and substantially improves performance isolation in private caches. Philip M. Wells, Koushik Chakraborty, Gurindar S. Sohi |
PACT | 3 |
| 2006 | Computation spreading: employing hardware migration to specialize CMP cores on-the-flyabstractIn canonical parallel processing, the operating system (OS) assigns a processing core to a single thread from a multithreaded server application. Since different threads from the same application often carry out similar computation, albeit at different times, we observe extensive code reuse among different processors, causing redundancy (e.g., in our server workloads, 45-65% of all instruction blocks are accessed by all processors). Moreover, largely independent fragments of computation compete for the same private resources causing destructive interference. Together, this redundancy and interference lead to poor utilization of private microarchitecture resources such as caches and branch predictors.We present Computation Spreading (CSP), which employs hardware migration to distribute a thread's dissimilar fragments of computation across the multiple processing cores of a chip multiprocessor (CMP), while grouping similar computation fragments from different threads together. This paper focuses on a specific example of CSP for OS intensive server applications: separating application level (user) computation from the OS calls it makes.When performing CSP, each core becomes temporally specialized to execute certain computation fragments, and the same core is repeatedly used for such fragments. We examine two specific thread assignment policies for CSP, and show that these policies, across four server workloads, are able to reduce instruction misses in private L2 caches by 27-58%, private L2 load misses by 0-19%, and branch mispredictions by 9-25%. Koushik Chakraborty, Philip M. Wells, Gurindar S. Sohi |
ASPLOS | 3 |
| 2006 | Program Demultiplexing: Data-flow based Speculative Parallelization of Methods in Sequential ProgramsabstractWe present program demultiplexing (PD), an execution paradigm that creates concurrency in sequential programs by "demultiplexing" methods (functions or subroutines). Call sites of a demultiplexed method in the program are associated with handlers that allow the method to be separated from the sequential program and executed on an auxiliary processor. The demultiplexed execution of a method (and its handler) is speculative and occurs when the inputs of the method are (speculatively) available, which is typically far in advance of when the method is actually called in the sequential execution. A trigger, composed of predicates that are based on program counters and memory write addresses, launches the speculative execution of the method on another processor. Our implementation of PD is based on a full-system execution-based chip multi-processor simulator with software to generate triggers and handlers from an x86-program binary. We evaluate eight integer benchmarks from the SPEC2000 suite - programs written in C with no explicit concurrency and/or motivation to create concurrency - and achieve a harmonic mean speedup of 1.8x with our implementation of PD Saisanthosh Balakrishnan, Gurindar S. Sohi |
ISCA | 2 |
| 2006 | Cooperative Caching for Chip MultiprocessorsabstractThis paper presents CMP Cooperative Caching, a unified framework to manage a CMP’s aggregate on-chip cache resources. Cooperative caching combines the strengths of private and shared cache organizations by forming an aggregate "shared" cache through cooperation among private caches. Locally active data are attracted to the private caches by their accessing processors to reduce remote on-chip references, while globally active data are cooperatively identified and kept in the aggregate cache to reduce off-chip accesses. Examples of cooperation include cache-to-cache transfers of clean data, replication-aware data replacement, and global replacement of inactive data. These policies can be implemented by modifying an existing cache replacement policy and cache coherence protocol, or by the new implementation of a directory-based protocol presented in this paper. Our evaluation using full-system simulation shows that cooperative caching achieves an off-chip miss rate similar to that of a shared cache, and a local cache hit rate similar to that of using private caches. Cooperative caching performs robustly over a range of system/cache sizes and memory latencies. For an 8-core CMP with 1MB L2 cache per core, the best cooperative caching scheme improves the performance of multithreaded commercial workloads by 5-11% compared with a shared cache and 4-38% compared with private caches. For a 4-core CMP running multiprogrammed SPEC2000 workloads, cooperative caching is on average 11% and 6% faster than shared and private cache organizations, respectively. Jichuan Chang, Gurindar S. Sohi |
ISCA | 2 |
| 2004 | Coherence decoupling: making use of incoherenceabstractThis paper explores a new technique called coherence decoupling, which breaks a traditional cache coherence protocol into two protocols: a Speculative Cache Lookup (SCL) protocol and a safe, backing coherence protocol. The SCL protocol produces a speculative load value, typically from an invalid cache line, permitting the processor to compute with incoherent data. In parallel, the coherence protocol obtains the necessary coherence permissions and the correct value. Eventually, the speculative use of the incoherent data can be verified against the coherent data. Thus, coherence decoupling can greatly reduce --- if not eliminate --- the effects of false sharing. Furthermore, coherence decoupling can also reduce latencies incurred by true sharing. SCL protocols reduce those latencies by speculatively writing updates into invalid lines, thereby increasing the accuracy of speculation, without complicating the simple, underlying coherence protocol that guarantees correctness.The performance benefits of coherence decoupling are evaluated using a full-system simulator and a mix of commercial and scientific benchmarks. Our results show that 40% to 90% of all coherence misses can be speculated correctly, and therefore their latencies partially or fully hidden. This capability results in performance improvements ranging from 3% to over 16%, in most cases where the latencies of coherence misses have an effect on performance. Jaehyuk Huh 0001, Jichuan Chang, Doug Burger, Gurindar S. Sohi |
ASPLOS | 4 |
| 2004 | Use-Based Register Caching with Decoupled IndexingabstractWide, deep pipelines need many physical registers to hold the results of in-flight instructions. Simultaneously, high clock frequencies prohibit using large register files and bypass networks without a significant performance penalty. Previously proposed techniques using register caching to reduce this penalty suffer from several problems including poor insertion and replacement decisions and the need for a fully-associative cache for good performance. We present novel mechanisms for managing and indexing register caches that address these problems using knowledge of the number of consumers of each register value. The insertion policy reduces pollution by not caching a register value when all of its predicted consumers are satisfied by the bypass network. The replacement policy selects register cache entries with the fewest remaining uses (often zero), lowering the miss rate. We also introduce a new, general method of mapping physical registers to register cache sets that improves the performance of set-associative cache organizations by reducing conflicts. Our results indicate that a 64-entry, two-way set associative cache using these techniques outperforms multi-cycle monolithic register files and previously proposed hierarchical register files. J. Adam Butts, Gurindar S. Sohi |
ISCA | 2 |
| 2004 | Single-Chip Multiprocessors: The Next Wave of Computer Architecture InnovationabstractThe past 25 years have been a very exciting time for computer architecture. A lot of this excitement was due to new opportunities made available by semiconductor technology: once basic uniprocessor functionality could be implemented on a chip, additional transistor resources could be used for innovative uniprocessor microarchitectures. The net result is that the microarchitecture of a high-performance uniprocessor today barely resembles that of one from 20 years ago. Today we stand at the doorstep of a similar period of excitement for multiprocessors. Semiconductor technology currently allows us to build a small chip multiprocessor. While the microarchitecture of the initial chip multiprocessors differs little from that of a traditional multiprocessor built with multiple chips, advances in semiconductor technology will allow us to rethink the microarchitecture of multiprocessors. Now is the time to start investigating innovative ways of architecting chip multiprocessors. This talk will try to provide some initial directions towards this overall research agenda. Gurindar S. Sohi |
MICRO | 1 |
| 2003 | Parallelism in the Front-EndabstractAs processor back-ends get more aggressive, front-ends will have to scale as well. Although the back-ends of superscalar processors have continued to become more parallel, the front-ends remain sequential. This paper describes techniques for fetching and renaming multiple non-contiguous portions of the dynamic instruction stream in parallel using multiple fetch and rename units. It demonstrates that parallel front-ends are a viable alternative to high-performance sequential front-ends.Compared with an equivalently-sized trace cache, our technique increases cache bandwidth utilization by 17%, front-end throughput by 20%, and performance by 5%. Parallelism also enhances latency tolerance: a parallel front-end loses only 6% performance as the cache size is decreased from 128 KB to 8 KB, compared with a 50--65% performance loss for sequential fetch mechanisms. Paramjit S. Oberoi, Gurindar S. Sohi |
ISCA | 2 |
| 2003 | Exploiting Value Locality in Physical Register FilesabstractThe physical register file is an important component of a dynamically-scheduled processor. Increasing the amount of parallelism places increasing demands on the physical register file, calling for alternative file organization and management strategies. This paper considers the use of value locality to optimize the operation of physical register files. We present empirical data showing that: (i) the value produced by an instruction is often the same as the value produced by another recently executed instruction, resulting in multiple physical registers containing the same value, and (ii) the values 0 and 1 account for a considerable fraction of the values written to and read from physical registers. The paper then presents three schemes to exploit the above observations. The first scheme extends a previously-proposed scheme to use only a single physical register for each unique value. The second scheme is a special case for the values 0 and 1. By restricting optimization to these values, the second scheme eliminated many of the drawbacks of the first scheme. The third scheme further improves on the second, resulting in an optimization that reduces physical register requirements with simple micro-architectural extensions. A performance evaluation of the three schemes is also presented. Saisanthosh Balakrishnan, Gurindar S. Sohi |
MICRO | 2 |
| 2002 | Dynamic dead-instruction detection and eliminationabstractWe observe a non-negligible fraction--3 to 16% in our benchmarks--of dynamically dead instructions, dynamic instruction instances that generate unused results. The majority of these instructions arise from static instructions that also produce useful results. We find that compiler optimization (specifically instruction scheduling) creates a significant portion of these partially dead static instructions. We show that most of the dynamically instructions arise from a small set of static instructions that produce dead values most of the time.We leverage this locality by proposing a dead instruction predictor and presenting a scheme to avoid the execution of predicted-dead instructions. Our predictor achieves an accuracy of 93% while identifying over 91% of the dead instructions using less than 5 KB of state. We achieve such high accuracies by leveraging future control flow information (i.e., branch predictions) to distinguish between useless and useful instances of the same static instruction.We then present a mechanism to avoid the register allocation, instruction scheduling, and execution of predicted dead instructions. We measure reductions in resource utilization averaging over 5% and sometimes exceeding 10%, covering physical register management (allocation and freeing), register file read and write traffic, and data cache accesses. Performance improves by an average of 3.6% on an architecture exhibiting resource contention. Additionally, our scheme frees future compilers from the need to consider the costs of dead instructions, enabling more aggressive code motion and optimization. Simultaneously, it mitigates the need for good path profiling information in making inter-block code motion decisions. J. Adam Butts, Gurindar S. Sohi |
ASPLOS | 2 |
| 2002 | Out-of-Order Instruction Fetch Using Multiple SequencersabstractConventional instruction fetch mechanisms fetch contiguous blocks of instructions in each cycle. They are difficult to scale since taken branches make it hard to increase the size of these blocks beyond eight instructions. Trace caches have been proposed as a solution to this problem, but they use cache space inefficiently. We show that fetching large blocks of contiguous instructions, or wide fetch, is inefficient for modern out-of-order processors. Instead of the usual approach of fetching large blocks of instructions from a single point in the program, we propose a high-bandwidth fetch mechanism that fetches small blocks of instructions from multiple points in a program. In this paper, we demonstrate that it is possible to achieve high-bandwidth fetch by using multiple narrow fetch units operating in parallel. Our mechanism performs as well as a trace cache, does not waste cache space, is more resilient to instruction cache misses, and is a natural fit for techniques that require fetching multiple threads, like multithreading, dual-path execution, and speculative threads. Paramjit S. Oberoi, Gurindar S. Sohi |
ICPP | 2 |
| 2002 | Characterizing and predicting value degree of useabstractA value's degree of use - the number of dynamic uses of that value $provides the most essential information needed to optimize its communication. We present simulation results demonstrating the properties of degree of use of values, including their predictability: most static instructions generate values with few degrees of use and these exhibit temporal locality. We use these results to guide the design of a degree of use predictor. The development and detailed characterization of this predictor is the focus of this paper. Our predictor leverages future control flow information (e.g., branch predictions) to select among different possible degrees of use. We study the effects of several optimizations and variations in the predictor's algorithms to tune the predictor for maximum performance. The resulting predictor generates correct degree of use predictions for over 92% of all dynamic values and has a misprediction rate below 2.5%. Such a predictor has a wide range of potential applications in optimizing value communication. J. Adam Butts, Gurindar S. Sohi |
MICRO | 2 |
| 2002 | A quantitative framework for automated pre-execution thread selectionabstractPre-execution attacks cache misses for which address prediction driven prefetching fails. In pre-execution, copies of cache miss computations are isolated from the main program and launched as separate threads called p-threads whenever the processor anticipates an upcoming miss. P-thread selection is the task of deciding what computations should execute as p-threads and when they should be launched such that total execution time is minimized. It is central to the success of pre-execution. We introduce a framework for automated static p-thread selection, a static p-thread being one whose dynamic instances are repeatedly launched during the course of program execution. Our approach is to formalize the problem quantitatively and then apply standard techniques to solve it analytically. The framework has two novel components. The slice tree is a data structure that compactly represents a set of static p-threads and the relationships among them. Aggregate advantage is a formula that uses raw program statistics and computation structure to assign each candidate static p-thread a numeric score based on estimated latency tolerance and overhead aggregated over its expected dynamic executions. We use the framework to select p-threads that cover L2 misses and study its effectiveness under different conditions via detailed simulation. We measure the effect of constraining p-thread length, locally optimizing p-threads, using different program samples as a statistical basis for selection, and varying several machine parameters. Our framework responds to these changes in an intuitive way. We also validate that aggregate advantage correctly models actual pre-execution. Amir Roth, Gurindar S. Sohi |
MICRO | 2 |
| 2002 | Master/slave speculative parallelizationabstractMaster/Slave Speculative Parallelization (MSSP) is an execution paradigm for improving the execution rate of sequential programs by parallelizing them speculatively for execution on a multiprocessor. In MSSP one processor - the master - executes an approximate version of the program to compute selected values that the full program's execution is expected to compute. The master's results are checked by slave processors that execute the original program. This validation is parallelized by cutting the program's execution into tasks. Each slave uses its predicted inputs (as computed by the master) to validate the input predictions of the next task, inductively validating the entire execution. The performance of MSSP is largely determined by the execution rate of the approximate program. Since approximate code has no correctness requirements (in essence it is a software value predictor), it can be optimized more effectively than traditionally generated code. It is free to sacrifice correctness in the uncommon case to maximize performance in the common case. A simulation-based evaluation of an initial MSSP implementation achieves speedups of up to 1.7 (harmonic mean 1.25) on the SPEC2000 integer benchmarks. Performance is currently limited by the effectiveness with which our current automated infrastructure approximates programs, which can likely be improved significantly. Craig B. Zilles, Gurindar S. Sohi |
MICRO | 2 |
| 2002 | Reducing Memory Latency via Read-after-Read Memory Dependence PredictionabstractWe observe that typical programs exhibit highly regular read-after-read (RAR) memory dependence streams. To exploit this regularity, we introduce read-after-read memory dependence prediction. This technique predicts whether: 1) a load will access a memory location that a preceding load accesses and 2) exactly which this preceding load is. This prediction is done without actual knowledge of the corresponding memory addresses. We also present two techniques that utilize RAR memory dependence prediction to reduce memory latency. In the first technique, a load may obtain a value by naming a preceding load with which an RAR dependence is predicted. The second technique speculatively converts a series of LOAD/sub 1/-USE/sub 1/,...,LOAD/sub N/-USE/sub N/ chains into a single LOAD/sub 1/-USE/sub 1/...USE/sub N/ producer/consumer graph. Our techniques can be implemented as small extensions to the previously proposed read-after-write (RAW) dependence prediction-based speculative memory cloaking and speculative memory bypassing. Performance experimentation results of RAR-based techniques are provided. Andreas Moshovos, Gurindar S. Sohi |
IEEE Trans. Computers | 2 |
| 2001 | Speculative Data-Driven MultithreadingabstractMispredicted branches and loads that miss in the cache cause the majority of retirement stalls experienced by sequential processors; we call these critical instructions. Despite their importance, a sequential processor has difficulty prioritizing critical computations (computations of critical instructions), because it must fetch all computations sequentially, regardless of their contribution to performance. Speculative data-driven multithreading (DDMT) is a general-purpose mechanism for overcoming this limitation. In DDAT critical computations are annotated so that they can execute standalone. When the processor predicts an upcoming instance of a critical instruction, it microarchiturally forks a copy of its computation as a new kind of speculative thread: a data-driven thread (DDT). The DDT executes in parallel with the main program thread, but typically generates the critical result much faster since it fetches and executes only the critical computation and not the whole program. A DDT "pre-executes" a critical computation and effectively "consumes" its latency on behalf of the main thread. A DDMT component called integration incorporates results completed in DDTs directly, into the main thread, sparing it from having to repent the work. We simulate an implementation of DDMT on top of a simultaneous multithreading (SMT) processor and use program profiles to create DDTs and annotate them into the executable. Our experiments show that DDMT pre-execution of critical loads and branches can improve performance significantly. Amir Roth, Gurindar S. Sohi |
HPCA | 2 |
| 2001 | A Programmable Co-Processor for ProfilingabstractAggressive program optimization requires accurate profile information, but such accuracy requires many samples to be collected. We explore a novel profiling architecture that reduces the overhead of collecting each sample by including a programmable co-processor that analyzes a stream of profile samples generated by a microprocessor. From this stream of samples, the co-processor can detect correlations between instructions (e.g., memory dependence profiling) as well as those between different dynamic instances of the same instruction (e.g., value profiling). The profiler's programmable nature allows a broad range of data to be extracted, post-processed, and formatted, as well as provides the flexibility to tailor the profiling application to the program under test. Because the co-processor is specialized for profiling, it can execute profiling applications more efficiently than a general-purpose processor. The co-processor should not significantly impact the cost or performance of the main processor because it can be implemented using a small number of transistors at the chip's periphery We demonstrate the proposed design through a detailed evaluation of load value profiling. Our implementation quickly and accurately estimates the value invariance of loads, with time overhead roughly proportional to the size of the instruction working set of the program. This algorithm demonstrates a number of general techniques for profiling, including: estimating the completeness of a profile, a means to focus profiling on particular instructions, management of profiling resources. Craig B. Zilles, Gurindar S. Sohi |
HPCA | 2 |
| 2001 | Execution-based prediction using speculative slicesabstractA relatively small set of static instructions has significant leverage on program execution performance. These problem instructions contribute a disproportionate number of cache misses and branch mispredictions because their behavior cannot be accurately anticipated using existing prefetching or branch prediction mechanisms. Craig B. Zilles, Gurindar S. Sohi |
ISCA | 2 |
| 2001 | Microarchitectural innovations: boosting microprocessor performance beyond semiconductor technology scalingabstractSemiconductor technology scaling provides faster and more plentiful transistors to build microprocessors, and applications continue to drive the demand for more powerful microprocessors. Weaving the "raw" semiconductor material into a microprocessor that offers the performance needed by modern and future applications is the role of computer architecture. This paper overviews some of the microarchitectural techniques that empower modem high-performance microprocessors. The techniques are classified into: 1) techniques meant to increase the concurrency in instruction processing, while maintaining the appearance of sequential processing and 2) techniques that exploit program behavior. The first category includes pipelining, superscalar execution, out-of-order execution, register renaming, and techniques to overlap memory-accessing instructions. The second category includes memory hierarchies, branch predictors, trace caches, and memory-dependence predictors. The paper also discusses microarchitectural techniques likely to be used in future microprocessors, including data value speculation and instruction reuse, microarchitectures with multiple sequencers and thread-level speculation, and microarchitectural techniques for tackling the problems of power consumption and reliability. Andreas Moshovos, Gurindar S. Sohi |
Proc. IEEE | 2 |
| 2001 | Speculative Versioning CacheabstractDependences among loads and stores whose addresses are unknown hinder the extraction of instruction level parallelism during the execution of a sequential program. Such ambiguous memory dependences can be overcome by memory dependence speculation which enables a load or store to be speculatively executed before the addresses of all preceding loads and stores are known. Furthermore, multiple speculative stores to a memory location create multiple speculative versions of the location. Program order among the speculative versions must be tracked to maintain sequential semantics. A previously proposed approach, the Address Resolution Buffer (ARB) uses a centralized buffer to support speculative versions. Our proposal, called the Speculative Versioning Cache (SVC), uses distributed caches to eliminate the latency and bandwidth problems of the ARB. The SVC conceptually unifies cache coherence and speculative versioning by using an organization similar to snooping bus-based coherent caches. Our evaluation for the Multiscalar architecture shows that hit latency is an important factor affecting performance and private cache solutions trade-off hit rate for hit latency. T. N. Vijaykumar, Sridhar Gopal, James E. Smith 0001, Gurindar S. Sohi |
IEEE Trans. Parallel Distributed Syst. | 4 |
| 2000 | Amir Roth: Speculative Multithreaded Processors
Gurindar S. Sohi |
HiPC | 1 |
| 2000 | Memory Dependence Speculation Tradeoffs in Centralized, Continuous-Window Superscalar ProcessorsabstractWe consider a variety of dynamic, hardware-based methods for exploiting load/store parallelism, including mechanisms that use memory dependence speculation. While previous work has also investigated such methods, this has been done primarily for split, distributed window processor models. We focus on centralized continuous-window processor models (the common configuration today). We confirm that exploiting load/store parallelism can greatly improve performance. Moreover, we show that much of this performance potential can be captured if addresses of the memory locations accessed by both loads and stores can be used to schedule loads. However, using addresses to schedule load execution may not always be an option due to complexity, latency, and cost considerations. For this reason, we also consider configurations that use just memory dependence speculation to guide load execution. We consider a variety of methods and show that speculation/synchronization can be used to effectively exploit virtually all load/store parallelism. We demonstrate that this technique is competitive to or better than the one that uses addresses for scheduling loads. We conclude by discussing why our findings differ, in part, from those reported for split, distributed window processor models. Andreas Moshovos, Gurindar S. Sohi |
HPCA | 2 |
| 2000 | Understanding the backward slices of performance degrading instructionsabstractFor many applications, branch mispredictions and cache misses limit a processor's performance to a level well below its peak instruction throughput. A small fraction of static instructions, whose behavior cannot be anticipated using current branch predictors and caches, contribute a large fraction of such performance degrading events. This paper analyzes the dynamic instruction stream leading up to these performance degrading instructions to identify the operations necessary to execute them early. The backward slice (the subset of the program that relates to the instruction) of these performance degrading instructions, if small compared to the whole dynamic instruction stream, can be pre-executed to hide the instruction's latency. To overcome conservative dependence assumptions that result in large slices, speculation can be used, resulting in speculative slices. This paper provides an initial characterization of the backward slices of L2 data cache misses and branch mispredictions, and shows the effectiveness of techniques, including memory dependence prediction and control independence, for reducing the size of these slices. Through the use of these techniques, many slices can be reduced to less than one tenth of the full dynamic instruction stream when considering the 512 instructions before the performance degrading instruction. 1 Craig B. Zilles, Gurindar S. Sohi |
ISCA | 2 |
| 2000 | A static power model for architectsabstractStatic power dissipation due to transistor leakage constitutes an increasing fraction of the total power in modern semiconductor technologies. Current technology trends indicate that the contribution will increase rapidly, reaching one half of total power dissipation within three process generations. Developing power efficient products will require consideration of static power in the earliest phases of design, including architecture and microarchitecture definition. We propose a simple equation for estimating static power consumption at the architectural level: P/sub static/=V/sub CC//spl middot/N/spl middot/k/sub design//spl middot/I/spl circ//sub leak/, where V/sub CC/ is the supply voltage, N is the number of transistors, k/sub design/ is a design dependent parameter, and I/spl circ//sub leak/ is a technology dependent parameter. This model enables high-level reasoning about the likely static power demands of alternative microarchitectures. Reasonably accurate values for the factors within the equation may be obtained directly from the high-level designs or by straightforward scaling arguments. The factors within the equation also suggest opportunities for static power optimization, including reducing the total number of devices, partitioning the design to allow for lower supply voltages or slower, less leaky transistors, turning off unused devices, favoring certain design styles, and favoring high bandwidth over low latency. Speculation is also examined as a means to employ slower transistors without a significant performance penalty. J. Adam Butts, Gurindar S. Sohi |
MICRO | 2 |
| 2000 | Register integration: a simple and efficient implementation of squash reuseabstractRegister integration (or simply integration) is a mechanism for incorporating speculative results directly into a sequential execution using data-dependence relationships. In this paper we use integration to implement squash reuse, the salvaging of instruction results that were needlessly discarded during the course of sequential recovery from a control- or datamis-speculation. To implement integration, we first allow the results of squashed instructions to remain in the physical register file past mis-speculation recovery. As the processor re-traces portions of the squashed path, integration logic examines each instruction as it is being renamed. Using an auxiliary table, this circuit searches the physical register file for the physical register belonging to the corresponding squashed instance of the instruction. If this register is found, integration succeeds and the squashed result is re-validated by a simple update of the rename table. Once integrated, an instruction is complete and may bypass the out-of-order core of the machine entirely. Integration reduces contention for queuing and execution resources, collapses dependent chains of instructions and accelerates the resolution of branches. It achieves this using only rename-table manipulations; no additional values are read from or written to the physical registers. Our preliminary evaluation shows that a minimal integration configuration can provide performance improvements of up to 8% when applied to current-generation micro-architectures and up to 11.5% when applied to more aggressive microarchitectures. Integration also reduces the amount of wasteful speculation in the machine, cutting the number of instructions executed by up to 15% and the number of instructions fetched along mis-speculated paths by as much as 6%. Amir Roth, Gurindar S. Sohi |
MICRO | 2 |
| 1999 | Improving virtual function call target prediction via dependence-based pre-computationabstractWe introduce dependence-based pre-computation as a complement to history-based target prediction schemes.We present pre-computation in the context of virtual finction calls (v-calls), a class of control transfers that is becoming increasingly important and has resisted conventional prediction.Our proposed technique dynamically identljies the sequence of operations that computes a v-call's target.When the first instruction in such a sequence is encountered, a small execution engine speculatively and aggressively pre-executes the rest.The pre-computed target is stored and subsequently used when a prediction needs to be made.We show that a common v-call instruction sequence can be exploited to implement pre-computation using a previously proposed prefetching mechanism and minimal additional hardware.In a suite of C++ programs, dependence-based pre-computation eliminates 46% of the mispredictions incurred by a simple BTB and 24% of those associated with a path-based two-levelpredictol: Amir Roth, Andreas Moshovos, Gurindar S. Sohi |
International Conference on Supercomputing | 3 |
| 1999 | Effective Jump-Pointer Prefetching for Linked Data StructuresabstractCurrent techniques for prefetching linked data structures (LDS) exploit the work available in one loop iteration or recursive call to overlap pointer chasing latency. Jump-pointers, which provide direct access to non-adjacent nodes, can be used for prefetching when loop and recursive procedure bodies are small and do not have sufficient work to overlap a long latency. This paper describes a framework for jump-pointer prefetching (JPP) that supports four prefetching idioms: queue, full, chain, and root jumping and three implementations: software-only, hardware-only, and a cooperative software/hardware technique. On a suite of pointer intensive programs, jump-pointer prefetching reduces memory stall time by 72% for software, 83% for cooperative and 55% for hardware, producing speedups of 15%, 20% and 22% respectively. Amir Roth, Gurindar S. Sohi |
ISCA | 2 |
| 1999 | Read-After-Read Memory Dependence PredictionabstractWe identify that typical programs which exhibit highly regular read-after-read (RAR) memory dependence streams. We exploit this regularity by introducing read-after-read (RAR) memory dependence prediction. We also present two RAR memory dependence prediction-based memory latency reduction techniques. In the first technique, a load can obtain a value by simply naming a preceding load with which a RAR dependence is predicted. The second technique speculatively converts a series of LOAD/sub 1/-USE/sub 1/,...,LOAD/sub N/-USE/sub N/ chains into a single LOAD/sub 1/-USE/sub 1/...USE/sub N/ producer/consumer graph. Our techniques can be implemented as surgical extensions to the recently proposed read-after-write (RAW) dependence prediction based speculative memory cloaking and speculative memory bypassing. On average, our techniques provide correct values for an additional 20% (integer codes) and 30% (floating-point codes) of all loads. Moreover, a combined RAW- and RAR-based cloaking/bypassing mechanism improves performance by 6.44% (integer) and 4.66% (floating-point) even when naive memory dependence speculation is used. The original RAW-based cloaking/bypassing mechanism yields improvements of 4.28% (integer) and 3.20% (floating-point). Andreas Moshovos, Gurindar S. Sohi |
MICRO | 2 |
| 1999 | The Use of Multithreading for Exception HandlingabstractCommon hardware exceptions, when implemented by trapping, unnecessarily serialize program execution in dynamically scheduled superscalar processors. To avoid the consequences of trapping the main program thread, multithreaded CPUs can exploit control and data independence by executing the exception handler in a separate hardware context. The main thread doesn't squash instructions after the excepting instruction, conserving fetch bandwidth and allowing execution of instructions independent of the exception. This leads to earlier branch resolution in the post exception code and additional memory latency tolerance. As a proof of concept, using threads to handle software TLB misses is shown to provide performance approaching that of an aggressive hardware TLB miss handler. Craig B. Zilles, Joel S. Emer, Gurindar S. Sohi |
MICRO | 3 |
| 1999 | Task Selection for the Multiscalar Architecture
T. N. Vijaykumar, Gurindar S. Sohi |
J. Parallel Distributed Comput. | 2 |
| 1998 | Dependance Based Prefetching for Linked Data StructuresabstractWe introduce a dynamic scheme that captures the accesspat-terns of linked data structures and can be used to predict future accesses with high accuracy. Our technique exploits the dependence relationships that exist between loads that produce addresses and loads that consume these addresses. By identzj+ing producer-consumer pairs, we construct a compact internal representation for the associated structure and its traversal. To achieve a prefetching eflect, a small prefetch engine speculatively traverses this representation ahead of the executing program. Dependence-based prefetching achieves speedups of up to 2.5 % on a suite of pointer-intensive programs. 1 Amir Roth, Andreas Moshovos, Gurindar S. Sohi |
ASPLOS | 3 |
| 1998 | An Empirical Analysis of Instruction RepetitionabstractWe study the phenomenon of instruction repetition, where the inputs and outputs of multiple dynamic instances of a static instruction are repeated. We observe that over 80% of the dynamic instructions executed in several programs are repeated and most of the repetition is due to a small number of static instructions. We attempt understand the source of this repetitive behavior by categorizing dynamic program instructions into dynamic program slices at both a global level and a local (within function) level. We observe that repeatability is more an artifact of how computation is expressed, and less of program inputs. Function-level analysis suggests that many functions are called with repeated arguments, though almost all of them have side effects. We provide commentary on exploiting the observed phenomenon and its sources in both software and hardware. Avinash Sodani, Gurindar S. Sohi |
ASPLOS | 2 |
| 1998 | Speculative Versioning CacheabstractDependences among loads and stores whose addresses are unknown hinder the extraction of instruction level parallelism during the execution of a sequential program. Such ambiguous memory dependences can be overcome by memory dependence speculation which enables a load or store to be speculatively executed before the addresses of all preceding loads and stores are known. Furthermore, multiple speculative stores to a memory location create multiple speculative versions of the location. Program order among the speculative versions must be tracked to maintain sequential semantics. A previously proposed approach, the address resolution buffer (ARB) uses a centralized buffer to support speculative versions. Our proposal, called the speculative versioning cache (SVC), uses distributed caches to eliminate the latency and bandwidth problems of the ARB. The SVC conceptually unifies cache coherence and speculative versioning by using an organization similar to snooping bus-based coherent caches. A preliminary evaluation for the multiscalar architecture shows that hit latency is an important factor affecting performance, and private cache solutions trade-off hit rate for hit latency. Sridhar Gopal, T. N. Vijaykumar, James E. Smith 0001, Gurindar S. Sohi |
HPCA | 4 |
| 1998 | Understanding the Differences Between Value Prediction and Instruction ReuseabstractRecently two hardware techniques-Value Prediction (VP) and instruction proposed for exploiting the redundancy in programs to collapse data dependences. In this paper we attempt to understand the different ways in which VP and IR interact with other microarchitectural features and the impact of such interactions on net performance. More specifically we perform the following tasks: (i) we identify, the various differences between the two techniques and qualitatively discuss their microarchitectural interactions, (ii) we evaluate the impact on performance of these interactions, and (iii) since IR is more restrictive of the two techniques, we also estimate the amount of total redundancy, present in programs, that can be captured by IR. Our results show that the performance obtained by VP is sensitive to the way branches with value-speculative operands are handled. We also see that, although IR captures less amount of redundancy, it may perform equally well because it validates results early, it is non-speculative, and it reduces branch misprediction penalty. Finally, we show that 84-97% of redundancy in programs can be reused, implying that the approach of detecting redundant instructions non-speculatively, based on their operands, does not significantly restrict W's ability to capture redundancy present in programs. Avinash Sodani, Gurindar S. Sohi |
MICRO | 2 |
| 1998 | Task Selection for a Multiscalar ProcessorabstractThe multiscalar architecture advocates a distributed processor organization and task-level speculation to exploit high degrees of instruction level parallelism (ILP) in sequential programs without impeding improvements in clock speeds. The main goal of this paper is to understand the key implications of the architectural features of distributed processor organization and task-level speculation for compiler task selection from the point of view of performance. We identify the fundamental performance issues to be: control flow speculation, data communication, data dependence speculation, load imbalance, and task overhead. We show that these issues are intimately related to a few key characteristics of tasks: task size, inter-task control flow, and inter-task data dependence. We describe compiler heuristics to select tasks with favorable characteristics. We report experimental results to show that the heuristics are successful in boosting overall performance by establishing larger ILP windows. T. N. Vijaykumar, Gurindar S. Sohi |
MICRO | 2 |
| 1997 | Dynamic Speculation and Synchronization of Data DependencesabstractData dependence speculation is used in instruction-level parallel (ILP) processors to allow early execution of an instruction before a logically preceding instruction on which it may be data dependent. If the instruction is independent, data dependence speculation succeeds; if not, it fails, and the two instructions must be synchronized. The modern dynamically scheduled processors that use data dependence speculation do so blindly (i.e., every load instruction with unresolved dependences is speculated). In this paper, we demonstrate that as dynamic instruction windows get larger, significant performance benefits can result when intelligent decisions about data dependence speculation are made. We propose dynamic data dependence speculation techniques: (i) to predict if the execution of an instruction is likely to result in a data dependence mis-speculation, and (ii) to provide the synchronization needed to avoid a mis-speculation. Experimental results evaluating the effectiveness of the proposed techniques are presented within the context of a Multiscalar processor. 1 Andreas Moshovos, Scott E. Breach, T. N. Vijaykumar, Gurindar S. Sohi |
ISCA | 4 |
| 1997 | Dynamic Instruction ReuseabstractThis paper introduces the concept of dynamic instruction reuse. Empirical observations suggest that many instructions, and groups of instructions, having the same inputs, are executed dynamically. Such instructions do not have to be executed repeatedly --- their results can be obtained from a buffer where they were saved previously. This paper presents three hardware schemes for exploiting the phenomenon of dynamic instruction reuse, and evaluates their effectiveness using execution-driven simulation. We find that in some cases over 50% of the instructions can be reused. The speedups so obtained, though less striking than the percentage of instructions reused, are still quite significant. Avinash Sodani, Gurindar S. Sohi |
ISCA | 2 |
| 1997 | Streamlining Inter-Operation Memory Communication via Data Dependence PredictionabstractWe revisit memory hierarchy design viewing memory as an inter-operation communication agent. This perspective leads to the development of novel methods of performing inter-operation memory communication. We use data dependence prediction to identify and link dependent loads and stores so that they can communicate speculatively without incurring the overhead of address calculation, disambiguation and data cache access. We also use data dependence prediction to convert, DEF-store-load-USE chains within the instruction window into DEF-USE chains prior to address calculation and disambiguation. We use true and output data dependence status prediction to introduce and manage a small storage structure called the transient value cache (TVC). The TVC captures memory values that are short-lived. It also captures recently stored values that are likely to be accessed soon. Accesses that are serviced by the TVC do not have to be serviced by other parts of the memory hierarchy, e.g., the data cache. The first two techniques are aimed at reducing the effective communication latency whereas the last technique is aimed at reducing data cache bandwidth requirements. Experimental analysis of the proposed techniques shows that: the proposed speculative communication methods correctly handle a large fraction of memory dependences; and a large number of the loads and stores do not have to ever reach the data cache when the TVC is in place. Andreas Moshovos, Gurindar S. Sohi |
MICRO | 2 |
| 1996 | High-Bandwidth Address Translation for Multiple-Issue ProcessorsabstractIn an effort to push the envelope of system performance, microprocessor designs are continually exploiting higher levels of instruction-level parallelism, resulting in increasing bandwidth demands on the address translation mechanism. Most current microprocessor designs meet this demand with a multi-ported TLB. While this design provides an excellent hit rate at each port, its access latency and area grow very quickly as the number of ports is increased. As bandwidth demands continue to increase, multi-ported designs will soon impact memory access latency.We present four high-bandwidth address translation mechanisms with latency and area characteristics that scale better than a multiported TLB design. We extend traditional high-bandwidth memory design techniques to address translation, developing interleaved and multi-level TLB designs. In addition, we introduce two new designs crafted specifically for high-bandwidth address translation. Piggyback ports are introduced as a technique to exploit spatial locality in simultaneous translation requests, allowing accesses to the same virtual memory page to combine their requests at the TLB access port. Pretranslation is introduced as a technique for attaching translations to base register values, making it possible to reuse a single translation many times.We perform extensive simulation-based studies to evaluate our designs. We vary key system parameters, such as processor model, page size, and number of architected registers, to see what effects these changes have on the relative merits of each approach. A number of designs show particular promise. Multi-level TLBs with as few as eight entries in the upper-level TLB nearly achieve the performance of a TLB with unlimited bandwidth. Piggyback ports combined with a lesser-ported TLB structure, e.g., an interleaved or multi-ported TLB, also perform well. Pretranslation over a single-ported TLB performs almost as well as a same-sized multi-level TLB with the added benefit of decreased access latency for physically indexed caches. Todd M. Austin, Gurindar S. Sohi |
ISCA | 2 |
| 1996 | ARB: A Hardware Mechanism for Dynamic Reordering of Memory ReferencesabstractTo exploit instruction level parallelism, it is important not only to execute multiple memory references per cycle, but also to reorder memory references-especially to execute loads before stores that precede them in the sequential instruction stream. To guarantee correctness of execution in such situations, memory reference addresses have to be disambiguated. This paper presents a novel hardware mechanism, called an Address Resolution Buffer (ARB), for performing dynamic reordering of memory references. The ARB supports the following features: (1) dynamic memory disambiguation in a decentralized manner, (2) multiple memory references per cycle, (3) out-of-order execution of memory references, (4) unresolved loads and stores, (5) speculative loads and stores, and (6) memory renaming. The paper presents the results of a simulation study that we conducted to verify the efficacy of the ARB for a superscalar processor. The paper also shows the ARB's application in a multiscalar processor. Manoj Franklin, Gurindar S. Sohi |
IEEE Trans. Computers | 2 |
| 1995 | Streamlining Data Cache Access with Fast Address CalculationabstractFor many programs, especially integer codes, untolerated load instruction latencies account for a significant portion of total execution time. In this paper, we present the design and evaluation of a fast address generation mechanism capable of eliminating the delays caused by effective address calculation for many loads and stores.Our approach works by predicting early in the pipeline (part of) the effective address of a memory access and using this predicted address to speculatively access the data cache. If the prediction is correct, the cache access is overlapped with non-speculative effective address calculation. Otherwise, the cache is accessed again in the following cycle, this time using the correct effective address. The impact on the cache access critical path is minimal; the prediction circuitry adds only a single OR operation before cache access can commence. In addition, verification of the predicted effective address is completely decoupled from the cache access critical path.Analyses of program reference behavior and subsequent performance analysis of this approach shows that this design is a good one, servicing enough accesses early enough to result in speedups for all the programs we tested. Our approach also responds well to software support, which can significantly reduce the number of mispredicted effective addresses, in many cases providing better program speedups and reducing cache bandwidth requirements. Todd M. Austin, Dionisios N. Pnevmatikatos, Gurindar S. Sohi |
ISCA | 3 |
| 1995 | Multiscalar ProcessorsabstractMultiscalar processors use a new, aggressive implementation paradigm for extracting large quantities of instruction level parallelism from ordinary high level language programs. A single program is divided into a collection of tasks by a combination of software and hardware. The tasks are distributed to a number of parallel processing units which reside within a processor complex. Each of these units fetches and executes instructions belonging to its assigned task. The appearance of a single logical register file is maintained with a copy in each parallel processing unit. Register results are dynamically routed among the many parallel processing units with the help of compiler-generated masks. Memory accesses may occur speculatively without knowledge of preceding loads or stores. Addresses are disambiguated dynamically, many in parallel, and processing waits only for true data dependences.This paper presents the philosophy of the multiscalar paradigm, the structure of multiscalar programs, and the hardware architecture of a multiscalar processor. The paper also discusses performance issues in the multiscalar model, and compares the multiscalar paradigm with other paradigms. Experimental results evaluating the performance of a sample of multiscalar organizations are also presented. Gurindar S. Sohi, Scott E. Breach, T. N. Vijaykumar |
ISCA | 1 |
| 1995 | Zero-cycle loads: microarchitecture support for reducing load latencyabstractUntolerated load instruction latencies often have a significant impact on overall program performance. As one means of mitigating this effect we present an aggressive hardware-based mechanism that provides effective support for reducing the latency of load instructions. Through the judicious use of instruction predecode, base register caching, and fast address calculation, it becomes possible to complete load instructions up to two cycles earlier than traditional pipeline designs. For a pipeline with one cycle data cache access, this results in what we term a zero-cycle load. A zero-cycle load produces a result prior to reaching the execute stage of the pipeline, allowing subsequent dependent instructions to issue unfettered by load dependencies. Programs executing on processors with support for zero-cycle loads experience significantly fewer pipeline stalls due to load instructions and increased overall performance. We present two pipeline designs supporting zero-cycle loads: one for pipelines with a single stage of instruction decode, and another for pipelines with multiple decode stages. We evaluate these designs in a number of contexts: with and without software support, in-order vs. out-of-order issue, and on architectures with many and few registers. We find that our approach is quite effective at reducing the impact of load latency, even more so on architectures with in-order issue and few registers. Todd M. Austin, Gurindar S. Sohi |
MICRO | 2 |
| 1995 | The microarchitecture of superscalar processorsabstractSuperscalar processing is the latest in along series of innovations aimed at producing ever-faster microprocessors. By exploiting instruction-level parallelism, superscalar processors are capable of executing more than one instruction in a clock cycle. This paper discusses the microarchitecture of superscalar processors. We begin with a discussion of the general problem solved by superscalar processors: converting an ostensibly sequential program into a more parallel one. The principles underlying this process, and the constraints that must be met, are discussed. The paper then provides a description of the specific implementation techniques used in the important phases of superscalar processing. The major phases include: (1) instruction fetching and conditional branch processing, (2) the determination of data dependences involving register values, (3) the initiation, or issuing, of instructions for parallel execution, (4) the communication of data values through memory via loads and stores, and (5) committing the process state in correct order so that precise interrupts can be supported. Examples of recent superscalar microprocessors, the MIPS R10000, the DEC 21164, and the AMD K5 are used to illustrate a variety of superscalar methods. James E. Smith 0001, Gurindar S. Sohi |
Proc. IEEE | 2 |
| 1994 | Guarded Executing and Branch Prediction in Dynamic ILP ProcessorsabstractEvaluates the effects of guarded (or conditional, or predicated) execution on the performance of an instruction level parallel processor employing dynamic branch prediction. First, the authors assess the utility of guarded execution, both qualitatively and quantitatively, using a variety of application programs. The assessment shows that guarded execution significantly increases the opportunities, for both compiler and dynamic hardware, to extract and exploit parallelism. However, existing methods of specifying guarded execution have several drawbacks that limit its use. Second, the authors study the interaction of guarded execution and dynamic branch prediction and show that the use of guarded execution significantly increases the number of instructions between mispredicted branches. Third, they propose a new method of specifying guarded execution. The proposed method uses special GUARD instructions, which can be used to incorporate guarded execution into existing instruction sets. GUARD instructions realize the full power of guarded execution, without the drawbacks of existing methods of specifying guarded execution.> Dionisios N. Pnevmatikatos, Gurindar S. Sohi |
ISCA | 2 |
| 1994 | The anatomy of the register file in a multiscalar processorabstractThis paper presents the operation of the register file in the multiscalar architecture. The register file provides the appearance of a logically centralized register file, yet is implemented as physically decentralized register files, queues, and control logic in a multiscalar processor. We address the key issues of storage, communication, and synchronization required for a successful design and discuss the complications that arise in the face of speculation. In particular, the hardware required to implement the register file is detailed, and software support to streamline the operation of the register file is described. Illustrative examples detailing important aspects of the operation of the register file and an evaluation of its effectiveness are provided. Scott E. Breach, T. N. Vijaykumar, Gurindar S. Sohi |
MICRO | 3 |
| 1994 | Efficient Detection of All Pointer and Array Access ErrorsabstractWe present a pointer and array access checking technique that provides complete error coverage through a simple set of program transformations. Our technique, based on an extended safe pointer representation, has a number of novel aspects. Foremost, it is the first technique that detects all spatial and temporal access errors. Its use is not limited by the expressiveness of the language; that is, it can be applied successfully to compiled or interpreted languages with subscripted and mutable pointers, local references, and explicit and typeless dynamic storage management, e.g., C. Because it is a source level transformation, it is amenable to both compile- and run-time optimization. Finally, its performance, even without compile-time optimization, is quite good. We implemented a prototype translator for the C language and analyzed the checking overheads of six non-trivial, pointer intensive programs. Execution overheads range from 130% to 540%; with text and data size overheads typically below 100%. Todd M. Austin, Scott E. Breach, Gurindar S. Sohi |
PLDI | 3 |
| 1994 | Request Combining in Multiprocessors with Arbitrary Interconnection NetworksabstractSeveral techniques have been proposed to allow parallel access to a shared memory location by combining requests. They have one or more of the following attributes: requirements for a priori knowledge of the request to combine, restrictions on the routing of messages in the network, or the use of sophisticated interconnection network nodes. We present a new method of combining requests that does not have the above requirements. We obtain this new method for request combining by developing a classification scheme for the existing methods of request combining. This classification scheme is facilitated by separating the request combining process into a two part operation: determining the combining set, which is the set of requests that participate in a combined access; and distributing the results of the combined access to the members of the combining set. The classification of combining strategies is based upon which system component, processor elements, or interconnection network performs each of these tasks. Our approach, which uses the interconnection network to establish the combining set and the processor elements to distribute the results, lies in an unexplored area of the design space. We also present simulation results to assess the benefits of the proposed approach.> Alvin R. Lebeck, Gurindar S. Sohi |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 1993 | Control flow prediction for dynamic ILP processorsabstractAddresses a two-fold question: whether there is enough parallelism in numeric and non-numeric workloads, such as the SPEC92 benchmark suite, under ideal conditions, disregarding any resource constraints and more importantly, whether a high ideal parallelism can be further characterized to assess its extractability with finite resources. The authors have designed and implemented an analysis tool that accepts as input a dynamic execution trace from an IBM RS/6000 environment, and outputs a parallelized instruction trace (schedule) that could be executed on an abstract machine with unlimited functional units and various constraints on the rest of its resources, namely, registers, stack and memory. They also analyze two different instruction scheduling policies: greedy and lazy. The paper further offers a characterization of ideal parallelism (obtainable on a machine with infinite resources) using a measure called slack to assess its sustainability with finite resources.> Dionisios N. Pnevmatikatos, Manoj Franklin, Gurindar S. Sohi |
MICRO | 3 |
| 1993 | High-Bandwidth Interleaved Memories for Vector Processors-A Simulation StudyabstractA family of alternate interleaving schemes called permutation-based interleaving schemes for improving memory bandwidth for a wide range of access patterns in high-performance vector processing systems is described. Permutation-based interleaving schemes can be implemented with a small amount of additional hardware and with a minimal time overhead. The results of a detailed simulation analysis are reviewed. The simulation analysis suggests that, with adequate buffering, permutation-based interleaving schemes similar to those studied can be used to implement a high-bandwidth memory system for vector processors. The resulting memory system sustains its bandwidth for a wide variety of access patterns and for large bank busy times far better than a memory system with standard interleaving.> Gurindar S. Sohi |
IEEE Trans. Computers | 1 |
| 1992 | Dynamic Dependency Analysis of Ordinary ProgramsabstractA quantitative analysis of program execution is essential to the computer architecture design process. With the current trend in architecture of enhancing the performance of uniprocessors by exploiting fine-grain parallelism, first-order metrics of program execution, such as operation frequencies, are not sufficient; characterizing the exact nature of dependencies between operations is essential. Todd M. Austin, Gurindar S. Sohi |
ISCA | 2 |
| 1992 | The Expandable Split Window Paradigm for Exploiting Fine-Grain ParallelismabstractWe propose a new processing paradigm, called the Expandable Split Window (ESW) paradigm, for exploiting fine-grain parallelism. This paradigm considers a window of instructions (possibly having dependencies) as a single unit, and exploits fine-grain parallelism by overlapping the execution of multiple windows. The basic idea is to connect multiple sequential processors, in a decoupled and decentralized manner, to achieve overall multiple issue. This processing paradigm shares a number of properties of the restricted dataflow machines, but was derived from the sequential von Neumann architecture. We also present an implementation of the Expandable Split Window execution model, and preliminary performance results. Manoj Franklin, Gurindar S. Sohi |
ISCA | 2 |
| 1992 | Register traffic analysis for streamlining inter-operation communication in fine-grain parallel processors
Manoj Franklin, Gurindar S. Sohi |
MICRO | 2 |
| 1992 | Evaluating Design Choices for Shared Bus Multiprocessors in a Throughput-Oriented EnvironmentabstractThe authors consider the evaluation of design choices in multiprocessors with a single, shared bus interconnect operating in an environment in which each task is being executed on a single processor and the performance of the multiprocessor is measured by its overall throughput. To evaluate design choices, they develop mean value analysis analytical models and validate the models by comparing their results against the results of a trace-driven simulation analysis for 5376 multiprocessor configurations. The trace-driven simulation uses actual programs and simulates their execution in a throughput-oriented environment. It is found that: (1) cache block sizes that yield the best performance in a multiprocessor differ from the block sizes that yield the best uniprocessor performance metrics, (2) a larger cache set associativity might be warranted in a multiprocessor even though it might not be warranted in a uniprocessor, (3) a split transaction, pipelined bus yields much higher multiprocessor throughput than a circuit switched bus, especially for larger main memory latencies, and (4) increasing the bus width appears to be an effective way of improving multiprocessor throughput.> MenChow Chiang, Gurindar S. Sohi |
IEEE Trans. Computers | 2 |
| 1991 | High-Bandwidth Data Memory Systems for Superscalar ProcessorsabstractThis paper considers the design of a data memory hierarchy, with a level 1 (L1) data cache at the top, to support the data bandwidth demands of a future-generation superscalar processor capable of issuing about ten instructions per clock cycle.It introduces the notion of cache bandwidfh -the bandwidth with which a cache can accept requests from the processor -and shows how the bandwidth of a standard, blocking cache, can degrade greatly because of its inability to overlap the service of misses.Non-blocking or lockup-free caches are discussed as a way of reducing the bandwidth degradation due to misses.To improve the data bandwidth to greater than 1 request per cycle, multi-port, interleaved caches are introduced.Simulation results from a cycle-by-cycle simulator, using the MIPS R2000 instruction set, suggest that memory hierarchies with blocking L 1 caches will be unable to support the bandwidth demands of futuregeneration superscalar processors.Multi-port, nonblocking (MPNB) L1 caches introduced in this paper for the top of the data memory hierarchy appear to be capable of supporting such data bandwidth demands. Gurindar S. Sohi, Manoj Franklin |
ASPLOS | 1 |
| 1991 | An Empirical Study of the CRAY Y-MP Processor Using the Perfect Club BenchmarksabstractCharacterization of machines, by studying pro~am usage of their architectural and organizational features, IS art essential ~art of the desi~n recess.ln this aper we re ort Y EL an empimcal study of a smg e processor of t e CRAY Y-P, using as benchmarks long-running scientific applications Sriram Vajapeyam, Gurindar S. Sohi, Wei-Chung Hsu |
ISCA | 2 |
| 1991 | Experience with Mean Value Analysis Models for Evaluating Shared Bus, Throughput-Oriented MultiprocessorsabstractWe report on our experience with the accuracy of mean value analysis analytical models for evaluating shared bus multiprocessors operating in a throughput-oriented environment. Having developed separate models for multiprocessors with circuit switched and split transaction, pipelined (packet switched) buses, wc compare the results of the models with those of an actual trace-driven simulation for 5,376 multiprocessor configurations.We find that the analytical models are accurate in predicting the individual processor throughputs and partial bus utilizations. For processor throughput, the difference between the results of the models and simulation are within 1% for 75% of the cases and within 3% in 94% of all cases. For partial bus utilization the model results are with 1% of simulation results in 70% of all cases and within 3% in 92% of all cases. The models are less accurate in predicting cache miss latency. MenChow Chiang, Gurindar S. Sohi |
SIGMETRICS | 2 |
| 1990 | Exploitation of operation-level parallelism in a processor of the CRAY X-MPabstractAvailable operation-level parallelism and its exploitation in the CRAY X-MP processor are studied. Considered are the sizes and contributions to execution time of basic blocks, instruction and operation issue rates and issue stalls, and operation execution overlap for entire executions of three large programs, FLO52, TRFD, and QCD1, taken from the Perfect Club benchmark set. The large basic blocks account for a significant portion of the overall execution time. It is also found that with the use of vector instructions, the X-MP is able to issue more than one operation per clock cycle, even though it can issue a maximum of one instruction per cycle.> Sriram Vajapeyam, Gurindar S. Sohi, Wei-Chung Hsu |
ICCD | 2 |
| 1990 | Design and Analysis of a Gracefully Degrading Interleaved Memory SystemabstractThe organization of interleaved memories in such a way that faults in the memory system degrade the performance in a graceful manner is studied. Attention is restricted to an interleaved memory system that starts out with 2/sup q/ memory banks and uses a low-order interleaving scheme. The motivation and design objectives of the memory system are described. A new reconfiguration scheme and the design of the hardware needed to implement it are presented. The reconfiguration scheme is evaluated using trace-driven simulation for a number of benchmarks. The ideas presented can easily be extended to other interleaved memory schemes.> Kifung C. Cheung, Gurindar S. Sohi, Kewal K. Saluja, Dhiraj K. Pradhan |
IEEE Trans. Computers | 2 |
| 1990 | Instruction Issue Logic for High-Performance Interruptible, Multiple Functional Unit, Pipelines ComputersabstractThe problems of data dependency resolution and precise interrupt implementation in pipelined processors are combined. A design for a hardware mechanism that resolves dependencies dynamically and, at the same time, guarantees precise interrupts is presented. Simulation studies show that by resolving dependencies the proposed mechanism is able to obtain a significant speedup over a simple instruction issue mechanism as well as implement precise interrupts.> Gurindar S. Sohi |
IEEE Trans. Computers | 1 |
| 1990 | The use of intermediate memories for low-latency memory access in supercomputer scalar units
Gurindar S. Sohi, Wei-Chung Hsu |
J. Supercomput. | 1 |
| 1990 | The Use of Feedback in Multiprocessors and Its Application to Tree Saturation ControlabstractUsing feedback control schemes in multiprocessor systems is proposed. In a multiprocessor, individual processors do not have complete control over, nor information about, the overall state of the system. The potential exists, then, for the processors to unknowingly interact in such a way as to degrade the performance of the system. An example of this is the problem of tree saturation caused by hot-spot accesses in multiprocessors using multistage interconnection networks. Tree saturation degrades the performance of all processors in the system, including those not participating in the hot spot activity. Feedback schemes can be used to control tree saturation, reducing degradation to memory request that are not to the hot spot, thereby increasing overall system performance. As a companion to feedback schemes, damping schemes are also considered. Simulation studies show that feedback schemes can improve overall system performance significantly and with relatively little hardware cost in many cases. Damping schemes in conjunction with feedback are shown to further improve.> Steven L. Scott, Gurindar S. Sohi |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 1989 | Tradeoffs in Instruction Format Design for Horizontal ArchitecturesabstractWith recent improvements in software techniques and the enhanced level of fine grain parallelism made available by such techniques, there has been an increased interest in horizontal architectures and large instruction words that are capable of issuing more that one operation per instruction. This paper investigates some issues in the design of such instruction formats. We study how the choice of an instruction format is influenced by factors such as the degree of pipelining and the instruction's view of the register file. Our results suggest that very large instruction words capable of issuing one operation to each functional unit resource in a horizontal architecture may be overkill. Restricted instruction formats with limited operation issuing capabilities are capable of providing similar performance (measured by the total number of time steps) with significantly less hardware in many cases. Gurindar S. Sohi, Sriram Vajapeyam |
ASPLOS | 1 |
| 1989 | Restricted Fetch&Phi operations for parallel processingabstractThis paper discusses a restricted form of the general Fetch&P operation and how the restricted form can be combined. In this restricted form, all processors participating in the combining have identical Fetch&P operations. Most applications of Fetch&P proposed in the literature satisfy the restrictions imposed. We show how this restricted form of Fetch&P allows an easy implementation of combining, especially in bus-based multiprocessors and multiprocessors with a separate synchronization memory. Applications of the proposed restricted Fetch&P operation are also considered. Gurindar S. Sohi, James E. Smith 0001, James R. Goodman |
ICS | 1 |
| 1989 | Using Feedback to Control Tree Saturation in Multistage Interconnection NetworksabstractIn this paper, we propose the use of feedback schemes in multiprocessors which use an interconnection network with distributed routing control. We show that by altering system behavior so as to minimize the occurrence of a performance-degrading situation in the network, the overall throughout of the system can be improved. Steven L. Scott, Gurindar S. Sohi |
ISCA | 2 |
| 1989 | Performance Analysis of Hierarchical Cache-Consistent Multiprocessors
Mary K. Vernon, Rajeev Jog, Gurindar S. Sohi |
Perform. Evaluation | 3 |
| 1989 | Cache Memory Organization to Enhance the Yield of High-Performance VLSI ProcessorsabstractThe authors study the tolerance of defects faults in cache memories. They argue that, even though the major components of a cache are linear RAMs (random-access memories), traditional techniques used for fault/defect tolerance in RAMs may be neither appropriate nor necessary for cache memories. They suggest a scheme that allows a cache to continue operation in the presence of defective/faulty blocks. Results are presented of an extensive trace-driven simulation analysis that evaluates the performance degradation of a cache due to defective blocks. From the results it is seen that the on-chip caches of VLSI processors can be organized so that the performance degradation due to a few defective blocks is negligible. The authors conclude that by tolerating such defects without a noticeable performance degradation, the yield of VLSI processors can be enhanced considerably.> Gurindar S. Sohi |
IEEE Trans. Computers | 1 |
| 1988 | The Performance Potential of Multiple Functional Unit ProcessorsabstractThe interaction is investigated of pipelining and multiple-functional units in single-processor machines, to gain an understanding of how each of these techniques contribute to performance improvement. A CRAY-like processor model is studied. The issue rate (instructions per clock cycle) is used as the performance measure. The base, nonpipelined, machine is then systematically augmented with more and more hardware features and the performance impact of each feature is evaluated. It is found that in nonvector machines, pipelining multiple-function units does not provide significant performance improvements. Dataflow limits are then derived for benchmark programs to determine the performance potential of each benchmark. In addition, other limits are computed which apply more realistic constraints on a computation. Based on these more realistic limits, it is determined to be worthwhile to investigate the performance improvements that can be achieved from issuing multiple instructions during each clock cycle. Several hardware approaches are evaluated for issuing multiple instructions each clock cycle.> Andrew R. Pleszkun, Gurindar S. Sohi |
ISCA | 2 |
| 1987 | Organization and Analysis of a Gracefully-Degrading Interleaved Memory SystemabstractA hardware mechanism has been proposed to reconfigure an interleaved memory system. The reconfiguration scheme is such that, at any instant all fault-free memory banks in the memory system are utilized in interleaved manner. A performance metric is defined which takes into account the bandwidth and the page-fault rate in an interleaved memory system. The reconfiguration scheme proposed in this paper is analyzed for a number of distinct programs using the performance metric defined in the paper. It is shown that the system performance degrades slowly, as the number of faulty banks increase, in a memory system using the proposed reconfiguration scheme. Kifung C. Cheung, Gurindar S. Sohi, Kewal K. Saluja, Dhiraj K. Pradhan |
ISCA | 2 |
| 1987 | Instruction Issue Logic for High-Performance, Interruptable Pipelined ProcessorsabstractThe performance of pipelined processors is severely limited by data dependencies. In order to achieve high performance, a mechanism to alleviate the effects of data dependencies must exist. If a pipelined CPU with multiple functional units is to be used in the presence of a virtual memory hierarchy, a mechanism must also exist for determining the state of the machine precisely. In this paper, we combine the issues of dependency-resolution and preciseness of state. We present a design for instruction issue logic that resolves dependencies dynamically and, at the same time, guarantees a precise state of the machine, without a significant hardware overhead. Detailed simulation studies for the proposed mechanism, using the Lawrence Livermore loops as a benchmark, are presented. Gurindar S. Sohi, Sriram Vajapeyam |
ISCA | 1 |
| 1985 | An Efficient LISP-Execution Architecture with a New Representation for List Structuresabstractarticle Free Access Share on An efficient LISP-execution architecture with a new representation for list structures Authors: Gurindar S. Sohi Coordinated Science Laboratory, University of Illinois, 1101 W. Springfield, Urbana, IL Coordinated Science Laboratory, University of Illinois, 1101 W. Springfield, Urbana, ILView Profile , Edward S. Davidson Coordinated Science Laboratory, University of Illinois, 1101 W. Springfield, Urbana, IL Coordinated Science Laboratory, University of Illinois, 1101 W. Springfield, Urbana, ILView Profile , Janak H. Patel Coordinated Science Laboratory, University of Illinois, 1101 W. Springfield, Urbana, IL Coordinated Science Laboratory, University of Illinois, 1101 W. Springfield, Urbana, ILView Profile Authors Info & Claims ACM SIGARCH Computer Architecture NewsVolume 13Issue 3June 1985 pp 91–98https://doi.org/10.1145/327070.327136Published:01 June 1985Publication History 7citation319DownloadsMetricsTotal Citations7Total Downloads319Last 12 Months17Last 6 weeks3 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my Alerts New Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Gurindar S. Sohi, Edward S. Davidson, Janak H. Patel |
ISCA | 1 |