The cost of writing data from a computer's processor to its storage components remains a bottleneck for modern computing systems. The speed of the processor continues to improve, more processing units are packed into a computer chip, but these advances only cause more data to be written to storage per second. The speed of storage subsystems has not kept pace with the processor?s ability to produce data for storage, and this difference in performance is likely to continue. Moreover, the trend in building storage subsystems for computers is to utilize technologies such as flash memories whose contents can be changed a relatively small number of times before the memory wears out. These technologies are cheaper and pack more storage into a given area, but care must be taken to avoid writing to memories made from such technologies at rates usually seen from a processor to memory.

This EAGER project aims to discover mechanisms that reduce or eliminate traffic from a processor to the storage subsystem. Elimination of such traffic increases the speed of the overall system and saves wear on storage components. This research finds data that would otherwise be sent to storage from the processor and eliminates such writes to memory. This technique is based on finding that such data cannot subsequently be referenced by an application. This effort focuses on a preliminary study to validate the technical approach, namely investigating the consequences of eliminating stores of data that has been explicitly deallocated by an application.

Project Report

", are the simulation results that support our claims on the intellectual merits of our research regarding the performance and energy savings which can result from eliminating unnecessary write-backs in a computer systems' memory hierarchy. Data needed by programs is brought closer to the processor through several levels of cache memories and main memory. When data is modified, the modifications will be propagated back through the hierarchy when the data item is evicted from cache memories. Our study shows that not all evicted data needs to be written back, particularly when the modified data is no longer needed: a data item is not needed because either it is deleted by the program or the data is not accessible because there are no other objects referencing the data. Our study explored the savings both for program written in C where objects are explicitly deleted and program written in Java, where deleted objects are identified during garbage collection. Based on our simulation studies, for programs written in C, eliminating unnecessary write-backs can result in an average energy savings of 15%, and eliminate 44% of write-backs. Several experimental artifacts resulted from the project. Gleipinir is a binary instrumentation tool which can track each memory reference and relate the memory access to a specific program object (variable, function, thread, process or core). This tool is now modified such that along with the address of a memory location accessed, the contents of that memory location are printed. This is the key to our study in identifying dusty writes. Gleipnir is also modified to track current stack frames as well as memory allocation and free functions. Dinero is a cache simulator that is widely used in computer architecture research. However Dinero does not allow for multicore traces, nor does it allow us to understand which write-backs are unnecessary. We developed a new cache simulator called Mula to overcome these limitations.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
1237417
Program Officer
Almadena Chtchelkanova
Project Start
Project End
Budget Start
2012-05-15
Budget End
2014-04-30
Support Year
Fiscal Year
2012
Total Cost
$74,861
Indirect Cost
Name
University of North Texas
Department
Type
DUNS #
City
Denton
State
TX
Country
United States
Zip Code
76203