High Performance Memory Testing: "Design Principles, Fault Modeling And Self-Test"