Non-coherent Cache Architecture

Limited Local Memory Multi-cores Soft Error Resilience
Coarse Grain Reconfigurable Arrays Non-coherent Cache Architecture

Challenge Our Approach Publications Resources

Challenge
One of the main challenges in scaling the number of cores is scaling the memory architecture. As the number of cores on a chip increases, the design complexity and the power consumption of the cache coherence logic increase exponentially. Therefore, it is inevitable for future multi-core processors to employ non-coherent cache architecture.

Intel’s SCC is a research processor which has 48 cores with non-coherent cache memories. (Figure is a courtesy of Intel.)

In non-coherent cache  many-core processors, such as Intel SCC (Single-chip Cloud Computer) shown above, cache coherency must be maintained by software through inter-core communication like message passing. While legacy program source codes are written in shared memory programming model, programmability and scalability are major challenges. It is not yet clear if every program can run on such architecture easily  and efficiently, and if the performance is scalable when the number of cores gets doubled, tripled, or even more.

Our Approach

As far as programmability is concerned, virtual shared memory can the best option since all the legacy code can run without any significant transformation. It can be implemented by a library which will invalidate and update the cache lines to maintain coherency. However, it may incur a lot of overhead for some applications due to frequent communication. Another option can be automatically transforming message passing style source code from shared memory style source code. The performance of generated code will be affected by various performance considerations and optimizations for the target processor. Careful evaluations and analyses must be done to find the most useful and efficient solution.

Publications

Resources