Advances and Prospects for In-memory Computing