Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Ibrahim Kolcu

dblp:98/2921 · DBLP profile ↗
← Back
26ranked-venue papers
0as first author
0since 2021 · last 2009
—ORCID · none

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

Systems, architecture and hardware · 22Software engineering, systems software and programming languages · 10Security and privacy · 1Applied, interdisciplinary, general and emerging computing · 1

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
3 papers
Energy-efficient computing · 46% Memory systems · 33% Electronic design automation · 13%
Software engineering, system software, and programming languages
1 paper
Compilers and program optimization · 100%

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

TopicWeightPapersLastEvidence papers
Memory systems › memory architecture
multi-bank memory
0.122006
Reducing memory energy consumption of embedded applications that process dynamically allocated data · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2006
Automatic data migration for reducing energy consumption in multi-bank memory systems · DAC 2002
Compilers and program optimization › dynamic optimization
profile-guided optimization
0.112007
Profile-driven energy reduction in network-on-chips · PLDI 2007
Energy-efficient computing › energy-efficient communication
network-on-chip power management
0.112007
Profile-driven energy reduction in network-on-chips · PLDI 2007
Electronic design automation › high-level synthesis › memory synthesis › memory partitioning
bank partitioning
0.112006
Reducing memory energy consumption of embedded applications that process dynamically allocated data · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2006
Memory systems › memory management › memory allocation
dynamic memory allocation
0.112006
Reducing memory energy consumption of embedded applications that process dynamically allocated data · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2006
Energy-efficient computing
memory energy efficiency
0.112006
Reducing memory energy consumption of embedded applications that process dynamically allocated data · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2006
Energy-efficient computing › power management
memory power management
0.012002
Automatic data migration for reducing energy consumption in multi-bank memory systems · DAC 2002
Energy-efficient computing
power management
0.012002
Automatic data migration for reducing energy consumption in multi-bank memory systems · DAC 2002
Distributed systems
communication link
0.012007
Profile-driven energy reduction in network-on-chips · PLDI 2007
Embedded and real-time systems › embedded software
embedded applications
0.012007
Profile-driven energy reduction in network-on-chips · PLDI 2007
Energy-efficient computing
leakage power reduction
0.012007
Profile-driven energy reduction in network-on-chips · PLDI 2007

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

profile-driven compiler analysis · 0.1link shutdown · 0.1temporal affinity clustering · 0.1dynamic data migration · 0.1data migration · 0.0
YearPublicationVenuePosition
2009 Reducing memory requirements of resource-constrained applications
abstract
Embedded computing platforms are often resource constrained, requiring great design and implementation attention to memory-power-, and heat-related parameters. An important task for a compiler in such platforms is to simplify the process of developing applications for limited memory devices and resource-constrained clients. Focusing on array-intensive embedded applications to be executed on single CPU-based architectures, this work explores how loop-based compiler optimizations can be used for increasing memory location reuse. Our goal is to transform a given application in such a way that the resulting code has fewer cases (as compared to the original code), where the lifetimes of array elements overlap. The reduction in lifetimes of array elements can then be exploited by reusing memory locations as much as possible. Our experimental results indicate that the proposed strategy reduces data space requirements of 15 resource constrained applications by more than 40%, on average. We also demonstrate how this strategy can be combined with data locality (cache behavior)--enhancing techniques so that a compiler can take advantage of both, that is, reduce data memory requirements and improve data locality at the same time.
Priya Unnikrishnan, Guangyu Chen, Mahmut T. Kandemir, Mustafa Karaköy, Ibrahim Kolcu
ACM Trans. Embed. Comput. Syst.5
2008 Profiler and compiler assisted adaptive I/O prefetching for shared storage caches
abstract
I/O prefetching has been employed in the past as one of the mechanisms to hide large disk latencies. However, I/O prefetching in parallel applications is problematic when multiple CPUs share the same set of disks due to the possibility that prefetches from different CPUs can interact on shared memory caches in the I/O nodes in complex and unpredictable ways. In this paper, we (i) quantify the impact of compiler-directed I/O prefetching - developed originally in the context of sequential execution - on shared caches at I/O nodes. The experimental data collected shows that while I/O prefetching brings benefits, its effectiveness reduces significantly as the number of CPUs is increased; (ii) identify inter-CPU misses due to harmful prefetches as one of the main sources for this reduction in performance with the increased number of CPUs; and (iii) propose and experimentally evaluate a profiler and compiler assisted adaptive I/O prefetching scheme targeting shared storage caches. The proposed scheme obtains inter-thread data sharing information using profiling and, based on the captured data sharing patterns, divides the threads into clusters and assigns a separate (customized) I/O prefetcher thread for each cluster. In our approach, the compiler generates the I/O prefetching threads automatically. We implemented this new I/O prefetching scheme using a compiler and the PVFS file system running on Linux, and the empirical data collected clearly underline the importance of adapting I/O prefetching based on program phases. Specifically, our proposed scheme improves performance, on average, by 19.9%, 11.9% and 10.3% over the cases without I/O prefetching, with independent I/O prefetching (each CPU is performing compiler-directed I/O prefetching independently), and with one CPU prefetching (one CPU is reserved for prefetching on behalf of others), respectively, when 8 CPUs are used.
Seung Woo Son 0001, Sai Prashanth Muralidhara, Ozcan Ozturk 0001, Mahmut T. Kandemir, Ibrahim Kolcu, Mustafa Karaköy
PACT5
2007 Profile-driven energy reduction in network-on-chips
abstract
Reducing energy consumption of a Network-on-Chip (NoC) is a critical design goal, especially for power-constrained embedded systems.In response, prior research has proposed several circuit/architectural level mechanisms to reduce NoC power consumption. This paper considers the problem from a different perspective and demonstrates that compiler analysis can be very helpful for enhancing the effectiveness of a hardware-based link power management mechanism by increasing the duration of communication links' idle periods. The proposed profile-based approach achieves its goal by maximizing the communication link reuse through compiler-directed, static message re-routing. That is, it clusters the required data communications into a small set of communication links at any given time, which increases the idle periods for the remaining communication links in the network. This helps hardware shut down more communication links and their corresponding buffers to reduce leakage power. The current experimental evaluation, with twelve data-intensive embedded applications, shows that the proposed profile-driven compiler approach reduces leakage energy by more than 35% (on average) as compared to a pure hardware-based link power management scheme.
Feihui Li, Guangyu Chen, Mahmut T. Kandemir, Ibrahim Kolcu
PLDI4
2006 Compiler-Guided data compression for reducing memory consumption of embedded applications
abstract
Memory system presents one of the critical challenges on embedded system design and optimization. This is mainly due to ever-increasing code complexity of embedded applications and exponential increase witnessed in the amount of data they manipulate. As a result, reducing memory space occupancy of embedded applications is very important and is even more important in the next decade. Motivated by this observation, this paper presents and evaluates a compiler-driven approach to data compression for reducing memory space occupancy. Our goal in this paper is to study how automated compiler support can help in deciding the set of data elements to compress/decompress and the points during execution at which these compressions/decompressions should be performed. The proposed compiler support achieves this by analyzing the source code of the application to be optimized and identifying the order in which the different data blocks are accessed. Based on this analysis, the compiler then automatically inserts compression/decompression calls in the application code. The compression calls target the data blocks that are not expected to be used in the near future, whereas the decompression calls target those data blocks with expected reuse but currently in compressed form.
Ozcan Ozturk 0001, Guangyu Chen, Mahmut T. Kandemir, Ibrahim Kolcu
ASP-DAC4
2006 Activity clustering for leakage management in SPMs
abstract
This paper proposes compiler-based leakage optimization strategy for on-chip scratch-pad memories (SPMs). The idea is to keep only a small set of SPM regions active at a given time and pre-activate SPM regions based on the compiler-extracted data access pattern. Our strategy, called activity clustering, increases the length of the idle periods of SPM regions by clustering accesses to a small set of regions at a time. It thus allows an SPM to take better advantage of the underlying leakage optimization mechanism
Mahmut T. Kandemir, Guangyu Chen, Feihui Li, Mary Jane Irwin, Ibrahim Kolcu
DATE5
2006 Dynamic partitioning of processing and memory resources in embedded MPSoC architectures
abstract
Current trends indicate that multiprocessor-system-on-chip (MPSoC) architectures are being increasingly used in building complex embedded systems. While circuit/architectural support for MPSoC based systems are making significant strides, programming these devices and providing suitable software support (e.g., compiler and operating systems) seem to be a tougher problem. This is because either programmers or compilers will have to make code explicitly parallel to run on these systems. An additional difficulty occurs when multiple applications use an MPSoC at the same time, because MPSoC resources should be partitioned across these applications carefully. This paper explores a proactive resource partitioning scheme for parallel applications simultaneously exercising the same MPSoC system. The proposed approach has two major components. The first component includes an offline preprocessing of applications which gives us an estimated profile for each application. Each application to be executed on our MPSoC is profiled and annotated with the profile information. The second component of our approach is an online resource partitioning, which partitions both the processing cores (i.e., computation resources) and on-chip memory space (i.e., storage resource) among simultaneously-executing applications. Our experimental evaluation with this partitioner shows that it generates much better results than conventional operating system based resource management. The results also reveal that both memory partitioning and processor partitioning are very important for obtaining the best results
Liping Xue, Ozcan Ozturk 0001, Feihui Li, Mahmut T. Kandemir, Ibrahim Kolcu
DATE5
2006 Memory-Conscious Reliable Execution on Embedded Chip Multiprocessors
abstract
Code and data duplication has been identified as one of the important mechanisms for improving reliability. In a chip multiprocessor-based execution environment, while it is possible to hide the overhead of code duplication through parallelism, hiding the memory space overhead incurred by data duplication is more difficult. This paper presents a compiler-directed memory-conscious data duplication scheme that tries to minimize the extra memory space required by duplicate execution. The proposed approach achieves this goal by using the memory locations that hold dead data to store the duplicates of the actively-used data. In this way, instead of using extra memory storage for duplicate elements, we use the existing memory locations to the extent allowed by usage patterns of data. The results collected from our experiments clearly show that the proposed approach saves significant memory space, as compared to a straightforward approach that implements full duplication
Guangyu Chen, Mahmut T. Kandemir, Ibrahim Kolcu
DSN3
2006 Reducing memory energy consumption of embedded applications that process dynamically allocated data
abstract
The authors present a set of strategies for reducing the energy consumption in a multibank memory architecture using an energy conscious dynamic memory allocation/deallocation. Applications that make dynamic memory allocations are used very frequently in embedded computing and mobile networking areas. The authors' strategies focus on such applications exclusively and cluster dynamically allocated data with a temporal affinity in the physical address space such that the data occupy a small number of memory banks. The remaining banks can be shut off, saving energy. One of the authors' strategies also employs dynamic data migration to further increase energy savings. The experimental results show that all the authors' strategies save a significant amount of energy
Victor M. DeLaLuz, Mahmut T. Kandemir, Ibrahim Kolcu
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.3
2005 Access Pattern-Based Code Compression for Memory-Constrained Embedded Systems
abstract
As compared to a large spectrum of performance optimizations, relatively little effort has been dedicated to optimize other aspects of embedded applications such as memory space requirements, power, real-time predictability, and reliability. In particular, many modern embedded systems operate under tight memory space constraints. One way of satisfying these constraints is to compress executable code and data as much as possible. While research on code compression have studied efficient hardware and software based code strategies, many of these techniques do not take application behavior into account, that is, the same compression/decompression strategy is used irrespective of the application being optimized. This paper presents a code compression strategy based on control flow graph (CFG) representation of the embedded program. The idea is to start with a memory image wherein all basic blocks are compressed, and decompress only the blocks that are predicted to be needed in the near future. When the current access to a basic block is over, our approach also decides the point at which the block could be compressed. We propose several compression and decompression strategies that try to reduce memory requirements without excessively increasing the original instruction cycle counts.
Ozcan Ozturk 0001, Hendra Saputra, Mahmut T. Kandemir, Ibrahim Kolcu
DATE4
2005 Integrating loop and data optimizations for locality within a constraint network based framework
abstract
In the context of data-intensive embedded applications, there have been two complementary approaches to data locality problem: restructuring code and restructuring data layout. Conceivably, an integrated approach that combines these two can generate much better results than each individual approach. However, there is an inherent difficulty in optimizing both data layout and loop access pattern simultaneously under a unified setting. This difficulty occurs due to the fact that a given data structure can be accessed by different loop nests of the application, and each such loop nest can demand a different memory layout transformation for the said data structure. This results in a coupling problem, where the behaviors of two (or more) loop nests are coupled to each other as a result of data sharing between them. In this paper, we present a constraint network (CN) based formulation of the integrated loop-data optimization problem. We present two alternate solutions to the data locality problem with our CN based formulation and discuss the pros and cons of each scheme. The first solution is a pure backtracking based one, whereas the second one improves upon the first one by employing three additional optimizations, including backjumping.
Guilin Chen, Ozcan Ozturk 0001, Mahmut T. Kandemir, Ibrahim Kolcu
ICCAD4
2005 Improving scratch-pad memory reliability through compiler-guided data block duplication
abstract
Recent trends in embedded computing indicates an increasing use of scratch-pad memories (SPMs) as on-chip store for instructions and data. An important characteristic of these memory components is that they are managed by software, instead of hardware. Ever-scaling process technology and employment of several power-saving techniques in embedded systems (e.g., voltage scaling) make these systems particularly vulnerable to soft errors and other transient errors. Therefore, it is very important in practice to consider the impact of soft errors in SPMs. While it is possible to employ classical memory protection mechanisms such as parity checks and ECC, each of these has its drawbacks. Specifically, a pure parity-based protection cannot correct any errors, and ECCs can be an overkill in the normal operation state when no soft error is experienced. This paper proposes an alternate approach to protect SPMs against soft errors. The proposed approach is based on data block duplication under compiler control. More specifically, an optimizing compiler duplicates data blocks within the SPM and protects each data block by parity if such a duplication does not hurt performance. The goal of this scheme is to provide only parity protection for data blocks (and reduce the overheads at runtime when no error occurs) but correct errors using the duplicate (when an error occurs in the primary copy), provided that the duplicate is not corrupted.
Feihui Li, Guilin Chen, Mahmut T. Kandemir, Ibrahim Kolcu
ICCAD4
2005 Compiler-guided leakage optimization for banked scratch-pad memories
abstract
Current trends indicate that leakage energy consumption will be an important concern in upcoming process technologies. In this paper, we propose a compiler-based leakage energy optimization strategy for on-chip scratch-pad memories (SPMs). The idea is to divide SPM into banks and use compiler-guided memory-data layout optimization and data migration to maximize SPM bank idleness, thereby increasing the chances of placing banks into a low-power (low-leakage) state. Our experimental results with eight applications show that the proposed compiler-based strategy is very effective in reducing leakage energy of on-chip SPMs.
Mahmut T. Kandemir, Mary Jane Irwin, Guangyu Chen, Ibrahim Kolcu
IEEE Trans. Very Large Scale Integr. Syst.4
2004 Exploiting Processor Workload Heterogeneity for Reducing Energy Consumption in Chip Multiprocessors
abstract
Advances in semiconductor technology are enabling designs with several hundred million transistors. Since building sophisticated single processor based systems is a complex process from design, verification, and software development perspectives, the use of chip multiprocessing is inevitable in future microprocessors. In fact, the abundance of explicit loop-level parallelism in many embedded applications helps us identify chip multiprocessing as one of the most promising directions in designing systems for embedded applications. Another architectural trend that we observe in embedded systems, namely, multi-voltage processors, is driven by the need of reducing energy consumption during program execution. Practical implementations such as Transmeta's Crusoe and Intel's XScale tune processor voltage/frequency depending on current execution load. Considering these two trends, chip multiprocessing and voltage/frequency scaling, this paper presents an optimization strategy for an architecture that makes use of both chip parallelism and voltage scaling. In our proposal, the compiler takes advantage of heterogeneity in parallel execution between the loads of different processors and assigns different voltages/frequencies to different processors if doing so reduces energy consumption without increasing overall execution cycles significantly. Our experiments with a set of applications show that this optimization can bring large energy benefits without much performance loss.
Ismail Kadayif, Mahmut T. Kandemir, Ibrahim Kolcu
DATE3
2004 Using Data Compression to Increase Energy Savings in Multi-bank Memories
Mahmut T. Kandemir, Ozcan Ozturk 0001, Mary Jane Irwin, Ibrahim Kolcu
Euro-Par4
2004 Tuning data replication for improving behavior of MPSoC applications
abstract
Maintaining cache coherence can be very costly for on-chip multiprocessors from an energy perspective. Observing this, we propose a compiler-directed strategy that replicates array data in cache memories of its potential consumer processors at the time the data is brought from off-chip memory. The goal is to eliminate the energy costs associated with bus snooping without negatively impacting overall performance. Our strategy can perform a much better job as compared to static replication strategies, where each array element is replicated based on the same fixed policy.
Ozcan Ozturk 0001, Mahmut T. Kandemir, Mary Jane Irwin, Ibrahim Kolcu
ACM Great Lakes Symposium on VLSI4
2004 Banked scratch-pad memory management for reducing leakage energy consumption
abstract
Current trends indicate that leakage energy consumption will be an important concern in upcoming process technologies. We propose a compiler-based leakage energy optimization strategy for on-chip scratch-pad memories (SPMs). The idea is to divide SPM into banks and use compiler-guided data layout optimization and data migration to maximize SPM bank idleness, thereby increasing the chances of placing banks into low-power (low-leakage) state.
Mahmut T. Kandemir, Mary Jane Irwin, Guilin Chen, Ibrahim Kolcu
ICCAD4
2004 Compiler-directed scratch pad memory optimization for embedded multiprocessors
abstract
This paper presents a compiler strategy to optimize data accesses in regular array-intensive applications running on embedded multiprocessor environments. Specifically, we propose an optimization algorithm that targets at reducing extra off-chip memory accesses caused by interprocessor communication. This is achieved by increasing the application-wide reuse of data that resides in scratch-pad memories of processors. Our results obtained using four array-intensive image processing applications indicate that exploiting interprocessor data sharing can reduce energy-delay product significantly on a four-processor embedded system.
Mahmut T. Kandemir, Ismail Kadayif, Alok N. Choudhary, Ibrahim Kolcu
IEEE Trans. Very Large Scale Integr. Syst.4
2003 Data Space Oriented Scheduling in Embedded Systems
Mahmut T. Kandemir, Guangyu Chen, Wei Zhang 0002, Ibrahim Kolcu
DATE4
2003 Implementation and Evaluation of an On-Demand Parameter-Passing Strategy for Reducing Energy
Mahmut T. Kandemir, Ibrahim Kolcu, Wei Zhang 0002
DATE2
2003 Compiler-Directed Management of Instruction Accesses
abstract
We present a compiler-oriented strategy to reduce the memory system energy consumption due to instruction accesses and increase performance by exploiting scratch pad memories. Scratch pad memories (SPMs) are alternatives to conventional cache memories in embedded computing. These small on-chip memories, like caches, provide fast and low-power access to data and instructions; but, they differ from caches in that their contents are managed by software instead of hardware. Our compiler framework keeps the most frequently used instructions in SPM and dynamically changes the contents of the SPM as the (instruction) working set of the application changes.
Guilin Chen, Guangyu Chen, Ismail Kadayif, Wei Zhang 0002, Mahmut T. Kandemir, Ibrahim Kolcu, Ugur Sezer
DSD6
2003 Energy-Conscious Memory Allocation and Deallocation for Pointer-Intensive Applications
Victor M. DeLaLuz, Mahmut T. Kandemir, Guangyu Chen, Ibrahim Kolcu
EMSOFT4
2003 Exploiting On-Chip Data Transfers for Improving Performance of Chip-Scale Multiprocessors
Guangyu Chen, Mahmut T. Kandemir, Alok N. Choudhary, Ibrahim Kolcu
Euro-Par4
2003 Loop Transformations for Reducing Data Space Requirements of Resource-Constrained Applications
Priya Unnikrishnan, Guangyu Chen, Mahmut T. Kandemir, Mustafa Karaköy, Ibrahim Kolcu
SAS5
2002 Influence of Loop Optimizations on Energy Consumption of Multi-bank Memory Systems
Mahmut T. Kandemir, Ibrahim Kolcu, Ismail Kadayif
CC2
2002 Automatic data migration for reducing energy consumption in multi-bank memory systems
abstract
An architectural solution to reducing memory energy consumption is to adopt a multi-bank memory system instead of a monolithic (single-bank) memory system. Some recent multi-bank memory architectures help reduce memory energy by allowing an unused bank to be placed into a low-power operating mode. This paper describes an automatic data migration strategy which dynamically places the arrays with temporal affinity into the same set of banks. This strategy increases the number of banks which can be put into low-power modes and allows the use of more aggressive energy-saving modes. Experiments using several array-dominated applications show the usefulness of data migration and indicate that large energy savings can be achieved with low overhead.
Victor M. DeLaLuz, Mahmut T. Kandemir, Ibrahim Kolcu
DAC3
2002 Reducing Cache Access Energy in Array-Intensive Application
abstract
Summary form only given. Cache memories are known to consume a large percentage of on-chip energy in current microprocessors. Direct-mapped caches are, in general, more energy efficient as they are simpler as compared to set-associative caches, and require no complex line replacement mechanisms. This study goes beyond performance-centric techniques, and proposes an energy-oriented optimization strategy that aims directly at reducing per access energy cost for direct-mapped data caches (rather than as a side effect of a performance-oriented optimization). Specifically, we have developed a compiler algorithm that uses access pattern analysis to determine those memory references that are certain to result in cache hits in a virtually-addressed direct-mapped data cache. After detecting such references, the compiler substitutes the corresponding load operations with energy-efficient loads that access only the data array of the cache instead of both tag and data arrays. This tag access elimination, in turn, reduces the per access energy consumption for data accesses.
Mahmut T. Kandemir, Ibrahim Kolcu
DATE2