Computation-in-Memory for Modern Applications using Emerging Technologies