When will enter the era of In-memory Computing with thousandfold energy-efficiency? — an algorithm-architecture co-design approach