Scalable caching techiques for a weakly coherent memory